diff --git a/README.md b/README.md index 7a14f56a..3bdbae59 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,7 @@ There are two components: How to add a feature protected by a version/extension/stage/profile: See the comment in `glslang/MachineIndependent/Versions.cpp`. -Things left to do: See `Todo.txt` +Tasks waiting to be done are documented as GitHub issues. Execution of Standalone Wrapper ------------------------------- @@ -177,15 +177,11 @@ For more information, please check `gtests/` directory's For the `runtests` script, it will generate current results in the `localResults/` directory and `diff` them against the `baseResults/`. -The integration tests to run via the `runtests` script is registered -via various `Test/test-*` text files and `Test/testlist`. When you want to update the tracked test results, they need to be copied from `localResults/` to `baseResults/`. This can be done by the `bump` shell script. -The list of files tested comes from `testlist`, and lists input shaders -in this directory, which must all be public for this to work. However, -you can add your own private list of tests, not tracked here, by using +You can add your own private list of tests, not tracked publicly, by using `localtestlist` to list non-tracked tests. This is automatically read by `runtests` and included in the `diff` and `bump` process. diff --git a/SPIRV/GlslangToSpv.cpp b/SPIRV/GlslangToSpv.cpp index f64066ee..61c9ae7d 100755 --- a/SPIRV/GlslangToSpv.cpp +++ b/SPIRV/GlslangToSpv.cpp @@ -117,6 +117,10 @@ protected: spv::Id getSampledType(const glslang::TSampler&); spv::Id convertGlslangToSpvType(const glslang::TType& type); spv::Id convertGlslangToSpvType(const glslang::TType& type, glslang::TLayoutPacking, const glslang::TQualifier&); + spv::Id convertGlslangStructToSpvType(const glslang::TType&, const glslang::TTypeList* glslangStruct, + glslang::TLayoutPacking, const glslang::TQualifier&); + void decorateStructType(const glslang::TType&, const glslang::TTypeList* glslangStruct, glslang::TLayoutPacking, + const glslang::TQualifier&, spv::Id); spv::Id makeArraySizeId(const glslang::TArraySizes&, int dim); spv::Id accessChainLoad(const glslang::TType& type); void accessChainStore(const glslang::TType& type, spv::Id rvalue); @@ -414,19 +418,19 @@ spv::BuiltIn TGlslangToSpvTraverser::TranslateBuiltInDecoration(glslang::TBuiltI { switch (builtIn) { case glslang::EbvPointSize: - // Defer adding the capability until the built-in is actually used. - if (!memberDeclaration) { - switch (glslangIntermediate->getStage()) { - case EShLangGeometry: - builder.addCapability(spv::CapabilityGeometryPointSize); - break; - case EShLangTessControl: - case EShLangTessEvaluation: - builder.addCapability(spv::CapabilityTessellationPointSize); - break; - default: - break; - } + // Defer adding the capability until the built-in is actually used. + if (! memberDeclaration) { + switch (glslangIntermediate->getStage()) { + case EShLangGeometry: + builder.addCapability(spv::CapabilityGeometryPointSize); + break; + case EShLangTessControl: + case EShLangTessEvaluation: + builder.addCapability(spv::CapabilityTessellationPointSize); + break; + default: + break; + } } return spv::BuiltInPointSize; @@ -438,12 +442,12 @@ spv::BuiltIn TGlslangToSpvTraverser::TranslateBuiltInDecoration(glslang::TBuiltI // case glslang::EbvClipDistance: if (!memberDeclaration) - builder.addCapability(spv::CapabilityClipDistance); + builder.addCapability(spv::CapabilityClipDistance); return spv::BuiltInClipDistance; case glslang::EbvCullDistance: if (!memberDeclaration) - builder.addCapability(spv::CapabilityCullDistance); + builder.addCapability(spv::CapabilityCullDistance); return spv::BuiltInCullDistance; case glslang::EbvViewportIndex: @@ -462,6 +466,10 @@ spv::BuiltIn TGlslangToSpvTraverser::TranslateBuiltInDecoration(glslang::TBuiltI builder.addCapability(spv::CapabilitySampleRateShading); return spv::BuiltInSampleMask; + case glslang::EbvLayer: + builder.addCapability(spv::CapabilityGeometry); + return spv::BuiltInLayer; + case glslang::EbvPosition: return spv::BuiltInPosition; case glslang::EbvVertexId: return spv::BuiltInVertexId; case glslang::EbvInstanceId: return spv::BuiltInInstanceId; @@ -475,7 +483,6 @@ spv::BuiltIn TGlslangToSpvTraverser::TranslateBuiltInDecoration(glslang::TBuiltI return (spv::BuiltIn)spv::BadValue; case glslang::EbvPrimitiveId: return spv::BuiltInPrimitiveId; case glslang::EbvInvocationId: return spv::BuiltInInvocationId; - case glslang::EbvLayer: return spv::BuiltInLayer; case glslang::EbvTessLevelInner: return spv::BuiltInTessLevelInner; case glslang::EbvTessLevelOuter: return spv::BuiltInTessLevelOuter; case glslang::EbvTessCoord: return spv::BuiltInTessCoord; @@ -1791,6 +1798,7 @@ spv::Id TGlslangToSpvTraverser::convertGlslangToSpvType(const glslang::TType& ty // Do full recursive conversion of an arbitrary glslang type to a SPIR-V Id. // explicitLayout can be kept the same throughout the hierarchical recursive walk. +// Mutually recursive with convertGlslangStructToSpvType(). spv::Id TGlslangToSpvTraverser::convertGlslangToSpvType(const glslang::TType& type, glslang::TLayoutPacking explicitLayout, const glslang::TQualifier& qualifier) { spv::Id spvType = spv::NoResult; @@ -1829,7 +1837,7 @@ spv::Id TGlslangToSpvTraverser::convertGlslangToSpvType(const glslang::TType& ty spvType = builder.makeUintType(64); break; case glslang::EbtAtomicUint: - logger->tbdFunctionality("Is atomic_uint an opaque handle in the uniform storage class, or an addresses in the atomic storage class?"); + builder.addCapability(spv::CapabilityAtomicStorage); spvType = builder.makeUintType(32); break; case glslang::EbtSampler: @@ -1853,144 +1861,19 @@ spv::Id TGlslangToSpvTraverser::convertGlslangToSpvType(const glslang::TType& ty case glslang::EbtBlock: { // If we've seen this struct type, return it - const glslang::TTypeList* glslangStruct = type.getStruct(); - std::vector structFields; + const glslang::TTypeList* glslangMembers = type.getStruct(); // Try to share structs for different layouts, but not yet for other // kinds of qualification (primarily not yet including interpolant qualification). if (! HasNonLayoutQualifiers(qualifier)) - spvType = structMap[explicitLayout][qualifier.layoutMatrix][glslangStruct]; + spvType = structMap[explicitLayout][qualifier.layoutMatrix][glslangMembers]; if (spvType != spv::NoResult) break; // else, we haven't seen it... - - // Create a vector of struct types for SPIR-V to consume - int memberDelta = 0; // how much the member's index changes from glslang to SPIR-V, normally 0, except sometimes for blocks if (type.getBasicType() == glslang::EbtBlock) - memberRemapper[glslangStruct].resize(glslangStruct->size()); - int locationOffset = 0; // for use across struct members, when they are called recursively - for (int i = 0; i < (int)glslangStruct->size(); i++) { - glslang::TType& glslangType = *(*glslangStruct)[i].type; - if (glslangType.hiddenMember()) { - ++memberDelta; - if (type.getBasicType() == glslang::EbtBlock) - memberRemapper[glslangStruct][i] = -1; - } else { - if (type.getBasicType() == glslang::EbtBlock) - memberRemapper[glslangStruct][i] = i - memberDelta; - // modify just this child's view of the qualifier - glslang::TQualifier subQualifier = glslangType.getQualifier(); - InheritQualifiers(subQualifier, qualifier); - - // manually inherit location; it's more complex - if (! subQualifier.hasLocation() && qualifier.hasLocation()) - subQualifier.layoutLocation = qualifier.layoutLocation + locationOffset; - if (qualifier.hasLocation()) - locationOffset += glslangIntermediate->computeTypeLocationSize(glslangType); - - // recurse - structFields.push_back(convertGlslangToSpvType(glslangType, explicitLayout, subQualifier)); - } - } - - // Make the SPIR-V type - spvType = builder.makeStructType(structFields, type.getTypeName().c_str()); - if (! HasNonLayoutQualifiers(qualifier)) - structMap[explicitLayout][qualifier.layoutMatrix][glslangStruct] = spvType; - - // Name and decorate the non-hidden members - int offset = -1; - locationOffset = 0; // for use within the members of this struct, right now - for (int i = 0; i < (int)glslangStruct->size(); i++) { - glslang::TType& glslangType = *(*glslangStruct)[i].type; - int member = i; - if (type.getBasicType() == glslang::EbtBlock) - member = memberRemapper[glslangStruct][i]; - - // modify just this child's view of the qualifier - glslang::TQualifier subQualifier = glslangType.getQualifier(); - InheritQualifiers(subQualifier, qualifier); - - // using -1 above to indicate a hidden member - if (member >= 0) { - builder.addMemberName(spvType, member, glslangType.getFieldName().c_str()); - addMemberDecoration(spvType, member, TranslateLayoutDecoration(glslangType, subQualifier.layoutMatrix)); - addMemberDecoration(spvType, member, TranslatePrecisionDecoration(glslangType)); - // Add interpolation and auxiliary storage decorations only to top-level members of Input and Output storage classes - if (type.getQualifier().storage == glslang::EvqVaryingIn || type.getQualifier().storage == glslang::EvqVaryingOut) { - if (type.getBasicType() == glslang::EbtBlock) { - addMemberDecoration(spvType, member, TranslateInterpolationDecoration(subQualifier)); - addMemberDecoration(spvType, member, TranslateAuxiliaryStorageDecoration(subQualifier)); - } - } - addMemberDecoration(spvType, member, TranslateInvariantDecoration(subQualifier)); - - if (qualifier.storage == glslang::EvqBuffer) { - std::vector memory; - TranslateMemoryDecoration(subQualifier, memory); - for (unsigned int i = 0; i < memory.size(); ++i) - addMemberDecoration(spvType, member, memory[i]); - } - - // compute location decoration; tricky based on whether inheritance is at play - // TODO: This algorithm (and it's cousin above doing almost the same thing) should - // probably move to the linker stage of the front end proper, and just have the - // answer sitting already distributed throughout the individual member locations. - int location = -1; // will only decorate if present or inherited - if (subQualifier.hasLocation()) { // no inheritance, or override of inheritance - // struct members should not have explicit locations - assert(type.getBasicType() != glslang::EbtStruct); - location = subQualifier.layoutLocation; - } else if (type.getBasicType() != glslang::EbtBlock) { - // If it is a not a Block, (...) Its members are assigned consecutive locations (...) - // The members, and their nested types, must not themselves have Location decorations. - } - else if (qualifier.hasLocation()) // inheritance - location = qualifier.layoutLocation + locationOffset; - if (qualifier.hasLocation()) // track for upcoming inheritance - locationOffset += glslangIntermediate->computeTypeLocationSize(glslangType); - if (location >= 0) - builder.addMemberDecoration(spvType, member, spv::DecorationLocation, location); - - // component, XFB, others - if (glslangType.getQualifier().hasComponent()) - builder.addMemberDecoration(spvType, member, spv::DecorationComponent, glslangType.getQualifier().layoutComponent); - if (glslangType.getQualifier().hasXfbOffset()) - builder.addMemberDecoration(spvType, member, spv::DecorationOffset, glslangType.getQualifier().layoutXfbOffset); - else if (explicitLayout != glslang::ElpNone) { - // figure out what to do with offset, which is accumulating - int nextOffset; - updateMemberOffset(type, glslangType, offset, nextOffset, explicitLayout, subQualifier.layoutMatrix); - if (offset >= 0) - builder.addMemberDecoration(spvType, member, spv::DecorationOffset, offset); - offset = nextOffset; - } - - if (glslangType.isMatrix() && explicitLayout != glslang::ElpNone) - builder.addMemberDecoration(spvType, member, spv::DecorationMatrixStride, getMatrixStride(glslangType, explicitLayout, subQualifier.layoutMatrix)); - - // built-in variable decorations - spv::BuiltIn builtIn = TranslateBuiltInDecoration(glslangType.getQualifier().builtIn, true); - if (builtIn != spv::BadValue) - addMemberDecoration(spvType, member, spv::DecorationBuiltIn, (int)builtIn); - } - } - - // Decorate the structure - addDecoration(spvType, TranslateLayoutDecoration(type, qualifier.layoutMatrix)); - addDecoration(spvType, TranslateBlockDecoration(type)); - if (type.getQualifier().hasStream() && glslangIntermediate->isMultiStream()) { - builder.addCapability(spv::CapabilityGeometryStreams); - builder.addDecoration(spvType, spv::DecorationStream, type.getQualifier().layoutStream); - } - if (glslangIntermediate->getXfbMode()) { - builder.addCapability(spv::CapabilityTransformFeedback); - if (type.getQualifier().hasXfbStride()) - builder.addDecoration(spvType, spv::DecorationXfbStride, type.getQualifier().layoutXfbStride); - if (type.getQualifier().hasXfbBuffer()) - builder.addDecoration(spvType, spv::DecorationXfbBuffer, type.getQualifier().layoutXfbBuffer); - } + memberRemapper[glslangMembers].resize(glslangMembers->size()); + spvType = convertGlslangStructToSpvType(type, glslangMembers, explicitLayout, qualifier); } break; default: @@ -2053,6 +1936,161 @@ spv::Id TGlslangToSpvTraverser::convertGlslangToSpvType(const glslang::TType& ty return spvType; } + +// Do full recursive conversion of a glslang structure (or block) type to a SPIR-V Id. +// explicitLayout can be kept the same throughout the hierarchical recursive walk. +// Mutually recursive with convertGlslangToSpvType(). +spv::Id TGlslangToSpvTraverser::convertGlslangStructToSpvType(const glslang::TType& type, + const glslang::TTypeList* glslangMembers, + glslang::TLayoutPacking explicitLayout, + const glslang::TQualifier& qualifier) +{ + // Create a vector of struct types for SPIR-V to consume + std::vector spvMembers; + int memberDelta = 0; // how much the member's index changes from glslang to SPIR-V, normally 0, except sometimes for blocks + int locationOffset = 0; // for use across struct members, when they are called recursively + for (int i = 0; i < (int)glslangMembers->size(); i++) { + glslang::TType& glslangMember = *(*glslangMembers)[i].type; + if (glslangMember.hiddenMember()) { + ++memberDelta; + if (type.getBasicType() == glslang::EbtBlock) + memberRemapper[glslangMembers][i] = -1; + } else { + if (type.getBasicType() == glslang::EbtBlock) + memberRemapper[glslangMembers][i] = i - memberDelta; + // modify just this child's view of the qualifier + glslang::TQualifier memberQualifier = glslangMember.getQualifier(); + InheritQualifiers(memberQualifier, qualifier); + + // manually inherit location; it's more complex + if (! memberQualifier.hasLocation() && qualifier.hasLocation()) + memberQualifier.layoutLocation = qualifier.layoutLocation + locationOffset; + if (qualifier.hasLocation()) + locationOffset += glslangIntermediate->computeTypeLocationSize(glslangMember); + + // recurse + spvMembers.push_back(convertGlslangToSpvType(glslangMember, explicitLayout, memberQualifier)); + } + } + + // Make the SPIR-V type + spv::Id spvType = builder.makeStructType(spvMembers, type.getTypeName().c_str()); + if (! HasNonLayoutQualifiers(qualifier)) + structMap[explicitLayout][qualifier.layoutMatrix][glslangMembers] = spvType; + + // Decorate it + decorateStructType(type, glslangMembers, explicitLayout, qualifier, spvType); + + return spvType; +} + +void TGlslangToSpvTraverser::decorateStructType(const glslang::TType& type, + const glslang::TTypeList* glslangMembers, + glslang::TLayoutPacking explicitLayout, + const glslang::TQualifier& qualifier, + spv::Id spvType) +{ + // Name and decorate the non-hidden members + int offset = -1; + int locationOffset = 0; // for use within the members of this struct + for (int i = 0; i < (int)glslangMembers->size(); i++) { + glslang::TType& glslangMember = *(*glslangMembers)[i].type; + int member = i; + if (type.getBasicType() == glslang::EbtBlock) + member = memberRemapper[glslangMembers][i]; + + // modify just this child's view of the qualifier + glslang::TQualifier memberQualifier = glslangMember.getQualifier(); + InheritQualifiers(memberQualifier, qualifier); + + // using -1 above to indicate a hidden member + if (member >= 0) { + builder.addMemberName(spvType, member, glslangMember.getFieldName().c_str()); + addMemberDecoration(spvType, member, TranslateLayoutDecoration(glslangMember, memberQualifier.layoutMatrix)); + addMemberDecoration(spvType, member, TranslatePrecisionDecoration(glslangMember)); + // Add interpolation and auxiliary storage decorations only to top-level members of Input and Output storage classes + if (type.getQualifier().storage == glslang::EvqVaryingIn || type.getQualifier().storage == glslang::EvqVaryingOut) { + if (type.getBasicType() == glslang::EbtBlock) { + addMemberDecoration(spvType, member, TranslateInterpolationDecoration(memberQualifier)); + addMemberDecoration(spvType, member, TranslateAuxiliaryStorageDecoration(memberQualifier)); + } + } + addMemberDecoration(spvType, member, TranslateInvariantDecoration(memberQualifier)); + + if (qualifier.storage == glslang::EvqBuffer) { + std::vector memory; + TranslateMemoryDecoration(memberQualifier, memory); + for (unsigned int i = 0; i < memory.size(); ++i) + addMemberDecoration(spvType, member, memory[i]); + } + + // Compute location decoration; tricky based on whether inheritance is at play and + // what kind of container we have, etc. + // TODO: This algorithm (and it's cousin above doing almost the same thing) should + // probably move to the linker stage of the front end proper, and just have the + // answer sitting already distributed throughout the individual member locations. + int location = -1; // will only decorate if present or inherited + // Ignore member locations if the container is an array, as that's + // ill-specified and decisions have been made to not allow this anyway. + // The object itself must have a location, and that comes out from decorating the object, + // not the type (this code decorates types). + if (! type.isArray()) { + if (memberQualifier.hasLocation()) { // no inheritance, or override of inheritance + // struct members should not have explicit locations + assert(type.getBasicType() != glslang::EbtStruct); + location = memberQualifier.layoutLocation; + } else if (type.getBasicType() != glslang::EbtBlock) { + // If it is a not a Block, (...) Its members are assigned consecutive locations (...) + // The members, and their nested types, must not themselves have Location decorations. + } else if (qualifier.hasLocation()) // inheritance + location = qualifier.layoutLocation + locationOffset; + } + if (location >= 0) + builder.addMemberDecoration(spvType, member, spv::DecorationLocation, location); + + if (qualifier.hasLocation()) // track for upcoming inheritance + locationOffset += glslangIntermediate->computeTypeLocationSize(glslangMember); + + // component, XFB, others + if (glslangMember.getQualifier().hasComponent()) + builder.addMemberDecoration(spvType, member, spv::DecorationComponent, glslangMember.getQualifier().layoutComponent); + if (glslangMember.getQualifier().hasXfbOffset()) + builder.addMemberDecoration(spvType, member, spv::DecorationOffset, glslangMember.getQualifier().layoutXfbOffset); + else if (explicitLayout != glslang::ElpNone) { + // figure out what to do with offset, which is accumulating + int nextOffset; + updateMemberOffset(type, glslangMember, offset, nextOffset, explicitLayout, memberQualifier.layoutMatrix); + if (offset >= 0) + builder.addMemberDecoration(spvType, member, spv::DecorationOffset, offset); + offset = nextOffset; + } + + if (glslangMember.isMatrix() && explicitLayout != glslang::ElpNone) + builder.addMemberDecoration(spvType, member, spv::DecorationMatrixStride, getMatrixStride(glslangMember, explicitLayout, memberQualifier.layoutMatrix)); + + // built-in variable decorations + spv::BuiltIn builtIn = TranslateBuiltInDecoration(glslangMember.getQualifier().builtIn, true); + if (builtIn != spv::BadValue) + addMemberDecoration(spvType, member, spv::DecorationBuiltIn, (int)builtIn); + } + } + + // Decorate the structure + addDecoration(spvType, TranslateLayoutDecoration(type, qualifier.layoutMatrix)); + addDecoration(spvType, TranslateBlockDecoration(type)); + if (type.getQualifier().hasStream() && glslangIntermediate->isMultiStream()) { + builder.addCapability(spv::CapabilityGeometryStreams); + builder.addDecoration(spvType, spv::DecorationStream, type.getQualifier().layoutStream); + } + if (glslangIntermediate->getXfbMode()) { + builder.addCapability(spv::CapabilityTransformFeedback); + if (type.getQualifier().hasXfbStride()) + builder.addDecoration(spvType, spv::DecorationXfbStride, type.getQualifier().layoutXfbStride); + if (type.getQualifier().hasXfbBuffer()) + builder.addDecoration(spvType, spv::DecorationXfbBuffer, type.getQualifier().layoutXfbBuffer); + } +} + // Turn the expression forming the array size into an id. // This is not quite trivial, because of specialization constants. // Sometimes, a raw constant is turned into an Id, and sometimes @@ -4026,7 +4064,7 @@ spv::Id TGlslangToSpvTraverser::getSymbolId(const glslang::TIntermSymbol* symbol id = createSpvVariable(symbol); symbolValues[symbol->getId()] = id; - if (! symbol->getType().isStruct()) { + if (symbol->getBasicType() != glslang::EbtBlock) { addDecoration(id, TranslatePrecisionDecoration(symbol->getType())); addDecoration(id, TranslateInterpolationDecoration(symbol->getType().getQualifier())); addDecoration(id, TranslateAuxiliaryStorageDecoration(symbol->getType().getQualifier())); @@ -4045,6 +4083,9 @@ spv::Id TGlslangToSpvTraverser::getSymbolId(const glslang::TIntermSymbol* symbol if (symbol->getQualifier().hasXfbOffset()) builder.addDecoration(id, spv::DecorationOffset, symbol->getQualifier().layoutXfbOffset); } + // atomic counters use this: + if (symbol->getQualifier().hasOffset()) + builder.addDecoration(id, spv::DecorationOffset, symbol->getQualifier().layoutOffset); } if (symbol->getQualifier().hasLocation()) diff --git a/SPIRV/SpvBuilder.cpp b/SPIRV/SpvBuilder.cpp index ee9642b4..f71b9350 100644 --- a/SPIRV/SpvBuilder.cpp +++ b/SPIRV/SpvBuilder.cpp @@ -2045,8 +2045,15 @@ Block& Builder::makeNewBlock() Builder::LoopBlocks& Builder::makeNewLoop() { - // Older MSVC versions don't allow inlining of blocks below. - LoopBlocks blocks = {makeNewBlock(), makeNewBlock(), makeNewBlock(), makeNewBlock()}; + // This verbosity is needed to simultaneously get the same behavior + // everywhere (id's in the same order), have a syntax that works + // across lots of versions of C++, have no warnings from pedantic + // compilation modes, and leave the rest of the code alone. + Block& head = makeNewBlock(); + Block& body = makeNewBlock(); + Block& merge = makeNewBlock(); + Block& continue_target = makeNewBlock(); + LoopBlocks blocks(head, body, merge, continue_target); loops.push(blocks); return loops.top(); } diff --git a/SPIRV/SpvBuilder.h b/SPIRV/SpvBuilder.h index 4ae28356..c7e3bcda 100755 --- a/SPIRV/SpvBuilder.h +++ b/SPIRV/SpvBuilder.h @@ -397,7 +397,12 @@ public: void endSwitch(std::vector& segmentBB); struct LoopBlocks { + LoopBlocks(Block& head, Block& body, Block& merge, Block& continue_target) : + head(head), body(body), merge(merge), continue_target(continue_target) { } Block &head, &body, &merge, &continue_target; + private: + LoopBlocks(); + LoopBlocks& operator=(const LoopBlocks&); }; // Start a new loop and prepare the builder to generate code for it. Until diff --git a/StandAlone/ResourceLimits.cpp b/StandAlone/ResourceLimits.cpp index 80491980..80198634 100644 --- a/StandAlone/ResourceLimits.cpp +++ b/StandAlone/ResourceLimits.cpp @@ -238,7 +238,8 @@ std::string GetDefaultTBuiltInResourceString() return ostream.str(); } -void DecodeResourceLimits(TBuiltInResource* resources, char* config) { +void DecodeResourceLimits(TBuiltInResource* resources, char* config) +{ const char* delims = " \t\n\r"; const char* token = strtok(config, delims); while (token) { diff --git a/StandAlone/StandAlone.cpp b/StandAlone/StandAlone.cpp index bff5dcdb..63e9878a 100644 --- a/StandAlone/StandAlone.cpp +++ b/StandAlone/StandAlone.cpp @@ -58,25 +58,26 @@ extern "C" { // Command-line options enum TOptions { - EOptionNone = 0x0000, - EOptionIntermediate = 0x0001, - EOptionSuppressInfolog = 0x0002, - EOptionMemoryLeakMode = 0x0004, - EOptionRelaxedErrors = 0x0008, - EOptionGiveWarnings = 0x0010, - EOptionLinkProgram = 0x0020, - EOptionMultiThreaded = 0x0040, - EOptionDumpConfig = 0x0080, - EOptionDumpReflection = 0x0100, - EOptionSuppressWarnings = 0x0200, - EOptionDumpVersions = 0x0400, - EOptionSpv = 0x0800, - EOptionHumanReadableSpv = 0x1000, - EOptionVulkanRules = 0x2000, - EOptionDefaultDesktop = 0x4000, - EOptionOutputPreprocessed = 0x8000, - EOptionOutputHexadecimal = 0x10000, - EOptionReadHlsl = 0x20000, + 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), }; // @@ -223,7 +224,13 @@ void ProcessArguments(int argc, char* argv[]) switch (argv[0][1]) { case 'H': Options |= EOptionHumanReadableSpv; - // fall through to -V + if ((Options & EOptionSpv) == 0) { + // default to Vulkan + Options |= EOptionSpv; + Options |= EOptionVulkanRules; + Options |= EOptionLinkProgram; + } + break; case 'V': Options |= EOptionSpv; Options |= EOptionVulkanRules; @@ -232,6 +239,8 @@ void ProcessArguments(int argc, char* argv[]) case 'G': Options |= EOptionSpv; Options |= EOptionLinkProgram; + // undo a -H default to Vulkan + Options &= ~EOptionVulkanRules; break; case 'E': Options |= EOptionOutputPreprocessed; @@ -239,6 +248,9 @@ void ProcessArguments(int argc, char* argv[]) case 'c': Options |= EOptionDumpConfig; break; + case 'C': + Options |= EOptionCascadingErrors; + break; case 'd': Options |= EOptionDefaultDesktop; break; @@ -339,6 +351,8 @@ void SetMessageOptions(EShMessages& messages) messages = (EShMessages)(messages | EShMsgOnlyPreprocessor); if (Options & EOptionReadHlsl) messages = (EShMessages)(messages | EShMsgReadHlsl); + if (Options & EOptionCascadingErrors) + messages = (EShMessages)(messages | EShMsgCascadingErrors); } // @@ -764,6 +778,7 @@ void usage() " errors will appear on stderr.\n" " -c configuration dump;\n" " creates the default configuration file (redirect to a .conf file)\n" + " -C cascading errors; risks crashes from accumulation of error recoveries\n" " -d default to desktop (#version 110) when there is no shader #version\n" " (default is ES version 100)\n" " -D input is HLSL\n" diff --git a/Test/baseResults/120.vert.out b/Test/baseResults/120.vert.out index 6c63744f..a6e833a3 100644 --- a/Test/baseResults/120.vert.out +++ b/Test/baseResults/120.vert.out @@ -44,7 +44,7 @@ ERROR: 0:107: 'overloadE' : no matching overloaded function found ERROR: 0:108: 'overloadE' : no matching overloaded function found ERROR: 0:111: 'overloadE' : no matching overloaded function found ERROR: 0:117: 'overloadF' : no matching overloaded function found -ERROR: 0:121: 'gl_TexCoord array size' : must be less than gl_MaxTextureCoords (32) +ERROR: 0:121: 'gl_TexCoord array size' : must be less than or equal to gl_MaxTextureCoords (32) ERROR: 0:165: 'switch' : Reserved word. ERROR: 0:171: 'default' : Reserved word. ERROR: 0:165: 'switch statements' : not supported for this version or the enabled extensions diff --git a/Test/baseResults/300BuiltIns.frag.out b/Test/baseResults/300BuiltIns.frag.out index edcae462..c2f12c92 100644 --- a/Test/baseResults/300BuiltIns.frag.out +++ b/Test/baseResults/300BuiltIns.frag.out @@ -161,9 +161,9 @@ ERROR: node is still EOpNull! 0:62 packSnorm2x16 (global highp uint) 0:62 'v2a' (global mediump 2-component vector of float) 0:63 Sequence -0:63 move second child to first child (temp highp 2-component vector of float) +0:63 move second child to first child (temp mediump 2-component vector of float) 0:63 'v20' (temp mediump 2-component vector of float) -0:63 unpackSnorm2x16 (global highp 2-component vector of float) +0:63 unpackSnorm2x16 (global mediump 2-component vector of float) 0:63 'uy' (global mediump uint) 0:64 Sequence 0:64 move second child to first child (temp highp uint) @@ -368,9 +368,9 @@ ERROR: node is still EOpNull! 0:62 packSnorm2x16 (global highp uint) 0:62 'v2a' (global mediump 2-component vector of float) 0:63 Sequence -0:63 move second child to first child (temp highp 2-component vector of float) +0:63 move second child to first child (temp mediump 2-component vector of float) 0:63 'v20' (temp mediump 2-component vector of float) -0:63 unpackSnorm2x16 (global highp 2-component vector of float) +0:63 unpackSnorm2x16 (global mediump 2-component vector of float) 0:63 'uy' (global mediump uint) 0:64 Sequence 0:64 move second child to first child (temp highp uint) diff --git a/Test/baseResults/310.vert.out b/Test/baseResults/310.vert.out index b8b39f59..678c3e12 100644 --- a/Test/baseResults/310.vert.out +++ b/Test/baseResults/310.vert.out @@ -179,27 +179,27 @@ ERROR: node is still EOpNull! 0:31 'u4' (temp highp 4-component vector of uint) 0:32 move second child to first child (temp highp int) 0:32 'i1' (temp highp int) -0:32 bitCount (global lowp int) +0:32 bitCount (global highp int) 0:32 'i1' (temp highp int) 0:33 move second child to first child (temp highp 3-component vector of int) 0:33 'i3' (temp highp 3-component vector of int) -0:33 bitCount (global lowp 3-component vector of int) +0:33 bitCount (global highp 3-component vector of int) 0:33 'u3' (temp highp 3-component vector of uint) 0:34 move second child to first child (temp highp 2-component vector of int) 0:34 'i2' (temp highp 2-component vector of int) -0:34 findLSB (global lowp 2-component vector of int) +0:34 findLSB (global highp 2-component vector of int) 0:34 'i2' (temp highp 2-component vector of int) 0:35 move second child to first child (temp highp 4-component vector of int) 0:35 'i4' (temp highp 4-component vector of int) -0:35 findLSB (global lowp 4-component vector of int) +0:35 findLSB (global highp 4-component vector of int) 0:35 'u4' (temp highp 4-component vector of uint) 0:36 move second child to first child (temp highp int) 0:36 'i1' (temp highp int) -0:36 findMSB (global lowp int) +0:36 findMSB (global highp int) 0:36 'i1' (temp highp int) 0:37 move second child to first child (temp highp 2-component vector of int) 0:37 'i2' (temp highp 2-component vector of int) -0:37 findMSB (global lowp 2-component vector of int) +0:37 findMSB (global highp 2-component vector of int) 0:37 'u2' (temp highp 2-component vector of uint) 0:40 move second child to first child (temp highp 3-component vector of float) 0:40 'v3' (temp highp 3-component vector of float) @@ -219,13 +219,13 @@ ERROR: node is still EOpNull! 0:46 'u1' (temp highp uint) 0:46 PackSnorm4x8 (global highp uint) 0:46 'v4' (temp mediump 4-component vector of float) -0:47 move second child to first child (temp mediump 4-component vector of float) +0:47 move second child to first child (temp highp 4-component vector of float) 0:47 'v4' (temp mediump 4-component vector of float) -0:47 UnpackUnorm4x8 (global mediump 4-component vector of float) +0:47 UnpackUnorm4x8 (global highp 4-component vector of float) 0:47 'u1' (temp highp uint) -0:48 move second child to first child (temp mediump 4-component vector of float) +0:48 move second child to first child (temp highp 4-component vector of float) 0:48 'v4' (temp mediump 4-component vector of float) -0:48 UnpackSnorm4x8 (global mediump 4-component vector of float) +0:48 UnpackSnorm4x8 (global highp 4-component vector of float) 0:48 'u1' (temp highp uint) 0:60 Function Definition: foo( (global void) 0:60 Function Parameters: @@ -1110,27 +1110,27 @@ ERROR: node is still EOpNull! 0:31 'u4' (temp highp 4-component vector of uint) 0:32 move second child to first child (temp highp int) 0:32 'i1' (temp highp int) -0:32 bitCount (global lowp int) +0:32 bitCount (global highp int) 0:32 'i1' (temp highp int) 0:33 move second child to first child (temp highp 3-component vector of int) 0:33 'i3' (temp highp 3-component vector of int) -0:33 bitCount (global lowp 3-component vector of int) +0:33 bitCount (global highp 3-component vector of int) 0:33 'u3' (temp highp 3-component vector of uint) 0:34 move second child to first child (temp highp 2-component vector of int) 0:34 'i2' (temp highp 2-component vector of int) -0:34 findLSB (global lowp 2-component vector of int) +0:34 findLSB (global highp 2-component vector of int) 0:34 'i2' (temp highp 2-component vector of int) 0:35 move second child to first child (temp highp 4-component vector of int) 0:35 'i4' (temp highp 4-component vector of int) -0:35 findLSB (global lowp 4-component vector of int) +0:35 findLSB (global highp 4-component vector of int) 0:35 'u4' (temp highp 4-component vector of uint) 0:36 move second child to first child (temp highp int) 0:36 'i1' (temp highp int) -0:36 findMSB (global lowp int) +0:36 findMSB (global highp int) 0:36 'i1' (temp highp int) 0:37 move second child to first child (temp highp 2-component vector of int) 0:37 'i2' (temp highp 2-component vector of int) -0:37 findMSB (global lowp 2-component vector of int) +0:37 findMSB (global highp 2-component vector of int) 0:37 'u2' (temp highp 2-component vector of uint) 0:40 move second child to first child (temp highp 3-component vector of float) 0:40 'v3' (temp highp 3-component vector of float) @@ -1150,13 +1150,13 @@ ERROR: node is still EOpNull! 0:46 'u1' (temp highp uint) 0:46 PackSnorm4x8 (global highp uint) 0:46 'v4' (temp mediump 4-component vector of float) -0:47 move second child to first child (temp mediump 4-component vector of float) +0:47 move second child to first child (temp highp 4-component vector of float) 0:47 'v4' (temp mediump 4-component vector of float) -0:47 UnpackUnorm4x8 (global mediump 4-component vector of float) +0:47 UnpackUnorm4x8 (global highp 4-component vector of float) 0:47 'u1' (temp highp uint) -0:48 move second child to first child (temp mediump 4-component vector of float) +0:48 move second child to first child (temp highp 4-component vector of float) 0:48 'v4' (temp mediump 4-component vector of float) -0:48 UnpackSnorm4x8 (global mediump 4-component vector of float) +0:48 UnpackSnorm4x8 (global highp 4-component vector of float) 0:48 'u1' (temp highp uint) 0:60 Function Definition: foo( (global void) 0:60 Function Parameters: diff --git a/Test/baseResults/430.vert.out b/Test/baseResults/430.vert.out index 8cfd20c0..4b7825bd 100644 --- a/Test/baseResults/430.vert.out +++ b/Test/baseResults/430.vert.out @@ -14,7 +14,7 @@ ERROR: 0:28: '' : cannot use invariant qualifier on a function parameter ERROR: 0:30: '' : cannot use layout qualifiers on a function parameter ERROR: 0:31: '' : cannot use auxiliary or interpolation qualifiers on a function parameter ERROR: 0:42: 'location' : overlapping use of location 53 -ERROR: 0:47: 'gl_ClipDistance array size' : must be less than gl_MaxClipDistances (8) +ERROR: 0:47: 'gl_ClipDistance array size' : must be less than or equal to gl_MaxClipDistances (8) ERROR: 0:51: 'start' : undeclared identifier ERROR: 0:51: '' : constant expression required ERROR: 0:51: 'layout-id value' : scalar integer expression required diff --git a/Test/baseResults/430scope.vert.out b/Test/baseResults/430scope.vert.out index 74601392..0a097a21 100644 --- a/Test/baseResults/430scope.vert.out +++ b/Test/baseResults/430scope.vert.out @@ -64,7 +64,7 @@ ERROR: node is still EOpNull! 0:47 3.000000 0:49 move second child to first child (temp 4-component vector of float) 0:49 gl_Position: direct index for structure (invariant gl_Position 4-component vector of float Position) -0:49 'anon@0' (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, 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, out float FogFragCoord gl_FogFragCoord}) +0:49 'anon@0' (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, 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:49 Constant: 0:49 0 (const uint) 0:49 Construct vec4 (temp 4-component vector of float) diff --git a/Test/baseResults/constFold.frag.out b/Test/baseResults/constFold.frag.out index f5c3e9c5..2e784688 100644 --- a/Test/baseResults/constFold.frag.out +++ b/Test/baseResults/constFold.frag.out @@ -374,6 +374,18 @@ ERROR: node is still EOpNull! 0:? 1 (const int) 0:? 9.000000 0:? false (const bool) +0:? 'cval1' (const bool) +0:? true (const bool) +0:? 'cval2' (const bool) +0:? false (const bool) +0:? 'cval3' (const bool) +0:? false (const bool) +0:? 'cval4' (const bool) +0:? true (const bool) +0:? 'cval5' (const bool) +0:? false (const bool) +0:? 'cval6' (const bool) +0:? true (const bool) Linked fragment stage: @@ -744,4 +756,16 @@ ERROR: node is still EOpNull! 0:? 1 (const int) 0:? 9.000000 0:? false (const bool) +0:? 'cval1' (const bool) +0:? true (const bool) +0:? 'cval2' (const bool) +0:? false (const bool) +0:? 'cval3' (const bool) +0:? false (const bool) +0:? 'cval4' (const bool) +0:? true (const bool) +0:? 'cval5' (const bool) +0:? false (const bool) +0:? 'cval6' (const bool) +0:? true (const bool) diff --git a/Test/baseResults/functionSemantics.frag.out b/Test/baseResults/functionSemantics.frag.out index a9dfb91c..1ea7dbd6 100644 --- a/Test/baseResults/functionSemantics.frag.out +++ b/Test/baseResults/functionSemantics.frag.out @@ -1,8 +1,12 @@ functionSemantics.frag Warning, version 400 is not yet complete; most version-specific features are present, but some are missing. +ERROR: 0:74: 'return' : cannot convert return value to function return type +WARNING: 0:74: 'return' : type conversion on return values was not explicitly allowed until version 420 +ERROR: 1 compilation errors. No code generated. + Shader version: 400 -0:? Sequence +ERROR: node is still EOpNull! 0:5 Function Definition: foo(i1;i1;i1;i1;i1;i1; (global int) 0:5 Function Parameters: 0:5 'a' (in int) @@ -195,6 +199,11 @@ Shader version: 400 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) @@ -203,7 +212,7 @@ Linked fragment stage: Shader version: 400 -0:? Sequence +ERROR: node is still EOpNull! 0:5 Function Definition: foo(i1;i1;i1;i1;i1;i1; (global int) 0:5 Function Parameters: 0:5 'a' (in int) @@ -396,6 +405,11 @@ Shader version: 400 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 new file mode 100755 index 00000000..ef406a18 --- /dev/null +++ b/Test/baseResults/glspv.esversion.vert.out @@ -0,0 +1,11 @@ +glspv.esversion.vert +ERROR: #version: ES shaders for OpenGL SPIR-V are not supported +Warning, version 310 is not yet complete; most version-specific features are present, but some are missing. +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 new file mode 100755 index 00000000..5df46c5b --- /dev/null +++ b/Test/baseResults/glspv.frag.out @@ -0,0 +1,13 @@ +glspv.frag +ERROR: 0:4: '#error' : GL_SPIRV is set ( correct , not an error ) +ERROR: 0:6: '#error' : GL_SPIR is 100 +ERROR: 0:14: 'input_attachment_index' : only allowed when using GLSL for Vulkan +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 new file mode 100755 index 00000000..7f44889f --- /dev/null +++ b/Test/baseResults/glspv.version.frag.out @@ -0,0 +1,24 @@ +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 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" + ExecutionMode 4 OriginLowerLeft + Source GLSL 330 + Name 4 "main" + 2: TypeVoid + 3: TypeFunction 2 + 4(main): 2 Function None 3 + 5: Label + Return + FunctionEnd diff --git a/Test/baseResults/glspv.version.vert.out b/Test/baseResults/glspv.version.vert.out new file mode 100755 index 00000000..eb003dff --- /dev/null +++ b/Test/baseResults/glspv.version.vert.out @@ -0,0 +1,10 @@ +glspv.version.vert +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 new file mode 100755 index 00000000..b91ab507 --- /dev/null +++ b/Test/baseResults/glspv.vert.out @@ -0,0 +1,18 @@ +glspv.vert +Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. +ERROR: 0:3: 'push_constant' : only allowed when using GLSL for Vulkan +ERROR: 0:6: 'descriptor set' : only allowed when using GLSL for Vulkan +ERROR: 0:8: 'shared' : not allowed when generating SPIR-V +ERROR: 0:9: 'packed' : not allowed when generating SPIR-V +ERROR: 0:13: 'gl_VertexIndex' : undeclared identifier +ERROR: 0:14: 'gl_InstanceIndex' : undeclared identifier +ERROR: 0:17: 'gl_DepthRangeParameters' : undeclared identifier +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.array.frag.out b/Test/baseResults/hlsl.array.frag.out index 113f1521..6f29aa20 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:11 Function Definition: PixelShaderFunction(i1;vf4[3]; (temp 4-component vector of float) +0:11 Function Definition: PixelShaderFunction(i1;vf4[3]; (global 4-component vector of float) 0:8 Function Parameters: 0:8 'i' (in int) 0:8 'input' (in 3-element array of 4-component vector of float) @@ -12,11 +12,11 @@ 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 direct index (temp 4-component vector of float) -0:10 'a' (temp 4-element array of 4-component vector of float) +0:10 'a' (global 4-element array of 4-component vector of float) 0:10 Constant: 0:10 1 (const int) 0:10 indirect index (temp 4-component vector of float) -0:10 'a' (temp 4-element array of 4-component vector of float) +0:10 'a' (global 4-element array of 4-component vector of float) 0:10 'i' (in int) 0:10 add (temp 4-component vector of float) 0:10 direct index (temp 4-component vector of float) @@ -38,14 +38,14 @@ gl_FragCoord origin is upper left 0:10 indirect index (temp 4-component vector of float) 0:10 m: direct index for structure (temp 7-element array of 4-component vector of float) 0:10 indirect index (temp structure{temp 7-element array of 4-component vector of float m}) -0:10 's' (temp 11-element array of structure{temp 7-element array of 4-component vector of float m}) +0:10 's' (global 11-element array of structure{temp 7-element array of 4-component vector of float m}) 0:10 'i' (in int) 0:10 Constant: 0:10 0 (const int) 0:10 'i' (in int) 0:? Linker Objects -0:? 'a' (temp 4-element array of 4-component vector of float) -0:? 's' (temp 11-element array of structure{temp 7-element array of 4-component vector of float m}) +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}) Linked fragment stage: @@ -54,7 +54,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:11 Function Definition: PixelShaderFunction(i1;vf4[3]; (temp 4-component vector of float) +0:11 Function Definition: PixelShaderFunction(i1;vf4[3]; (global 4-component vector of float) 0:8 Function Parameters: 0:8 'i' (in int) 0:8 'input' (in 3-element array of 4-component vector of float) @@ -64,11 +64,11 @@ 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 direct index (temp 4-component vector of float) -0:10 'a' (temp 4-element array of 4-component vector of float) +0:10 'a' (global 4-element array of 4-component vector of float) 0:10 Constant: 0:10 1 (const int) 0:10 indirect index (temp 4-component vector of float) -0:10 'a' (temp 4-element array of 4-component vector of float) +0:10 'a' (global 4-element array of 4-component vector of float) 0:10 'i' (in int) 0:10 add (temp 4-component vector of float) 0:10 direct index (temp 4-component vector of float) @@ -90,18 +90,18 @@ gl_FragCoord origin is upper left 0:10 indirect index (temp 4-component vector of float) 0:10 m: direct index for structure (temp 7-element array of 4-component vector of float) 0:10 indirect index (temp structure{temp 7-element array of 4-component vector of float m}) -0:10 's' (temp 11-element array of structure{temp 7-element array of 4-component vector of float m}) +0:10 's' (global 11-element array of structure{temp 7-element array of 4-component vector of float m}) 0:10 'i' (in int) 0:10 Constant: 0:10 0 (const int) 0:10 'i' (in int) 0:? Linker Objects -0:? 'a' (temp 4-element array of 4-component vector of float) -0:? 's' (temp 11-element array of structure{temp 7-element array of 4-component vector of float m}) +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}) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 63 +// Id's are bound by 64 Capability Shader 1: ExtInstImport "GLSL.std.450" @@ -114,9 +114,9 @@ gl_FragCoord origin is upper left Name 19 "i" Name 27 "input" Name 40 "b" - Name 50 "" - MemberName 50 0 "m" - Name 54 "s" + Name 51 "" + MemberName 51 0 "m" + Name 55 "s" 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -124,10 +124,11 @@ gl_FragCoord origin is upper left 8: TypeInt 32 0 9: 8(int) Constant 4 10: TypeArray 7(fvec4) 9 - 11: TypePointer Function 10 + 11: TypePointer Private 10 + 12(a): 11(ptr) Variable Private 13: TypeInt 32 1 14: 13(int) Constant 1 - 15: TypePointer Function 7(fvec4) + 15: TypePointer Private 7(fvec4) 18: TypePointer Input 13(int) 19(i): 18(ptr) Variable Input 24: 8(int) Constant 3 @@ -140,18 +141,18 @@ gl_FragCoord origin is upper left 38: TypeArray 7(fvec4) 37 39: TypePointer Function 38 41: 13(int) Constant 5 - 48: 8(int) Constant 7 - 49: TypeArray 7(fvec4) 48 - 50: TypeStruct 49 - 51: 8(int) Constant 11 - 52: TypeArray 50(struct) 51 - 53: TypePointer Function 52 - 56: 13(int) Constant 0 + 42: TypePointer Function 7(fvec4) + 49: 8(int) Constant 7 + 50: TypeArray 7(fvec4) 49 + 51: TypeStruct 50 + 52: 8(int) Constant 11 + 53: TypeArray 51(struct) 52 + 54: TypePointer Private 53 + 55(s): 54(ptr) Variable Private + 57: 13(int) Constant 0 4(PixelShaderFunction): 2 Function None 3 5: Label - 12(a): 11(ptr) Variable Function 40(b): 39(ptr) Variable Function - 54(s): 53(ptr) Variable Function 16: 15(ptr) AccessChain 12(a) 14 17: 7(fvec4) Load 16 20: 13(int) Load 19(i) @@ -165,17 +166,17 @@ gl_FragCoord origin is upper left 34: 7(fvec4) Load 33 35: 7(fvec4) FAdd 31 34 36: 7(fvec4) FAdd 23 35 - 42: 15(ptr) AccessChain 40(b) 41 - 43: 7(fvec4) Load 42 - 44: 13(int) Load 19(i) - 45: 15(ptr) AccessChain 40(b) 44 - 46: 7(fvec4) Load 45 - 47: 7(fvec4) FAdd 43 46 - 55: 13(int) Load 19(i) - 57: 13(int) Load 19(i) - 58: 15(ptr) AccessChain 54(s) 55 56 57 - 59: 7(fvec4) Load 58 - 60: 7(fvec4) FAdd 47 59 - 61: 7(fvec4) FAdd 36 60 - ReturnValue 61 + 43: 42(ptr) AccessChain 40(b) 41 + 44: 7(fvec4) Load 43 + 45: 13(int) Load 19(i) + 46: 42(ptr) AccessChain 40(b) 45 + 47: 7(fvec4) Load 46 + 48: 7(fvec4) FAdd 44 47 + 56: 13(int) Load 19(i) + 58: 13(int) Load 19(i) + 59: 15(ptr) AccessChain 55(s) 56 57 58 + 60: 7(fvec4) Load 59 + 61: 7(fvec4) FAdd 48 60 + 62: 7(fvec4) FAdd 36 61 + ReturnValue 62 FunctionEnd diff --git a/Test/baseResults/hlsl.assoc.frag.out b/Test/baseResults/hlsl.assoc.frag.out index bc06bd0c..251c7bec 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:12 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vf4;vf4; (temp 4-component vector of float) +0:12 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vf4;vf4; (global 4-component vector of float) 0:8 Function Parameters: 0:8 'a1' (in 4-component vector of float) 0:8 'a2' (in 4-component vector of float) @@ -38,7 +38,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:12 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vf4;vf4; (temp 4-component vector of float) +0:12 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vf4;vf4; (global 4-component vector of float) 0:8 Function Parameters: 0:8 'a1' (in 4-component vector of float) 0:8 'a2' (in 4-component vector of float) diff --git a/Test/baseResults/hlsl.attribute.frag.out b/Test/baseResults/hlsl.attribute.frag.out index 3bfbea71..77e34fe6 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:14 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) +0:14 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) 0:2 Function Parameters: 0:2 'input' (in 4-component vector of float) 0:? Sequence @@ -20,7 +20,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:14 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) +0:14 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) 0:2 Function Parameters: 0:2 'input' (in 4-component vector of float) 0:? Sequence diff --git a/Test/baseResults/hlsl.cast.frag.out b/Test/baseResults/hlsl.cast.frag.out index 61ca29f5..24b18cda 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:5 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) +0:5 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) 0:2 Function Parameters: 0:2 'input' (in 4-component vector of float) 0:? Sequence @@ -28,7 +28,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:5 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) +0:5 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) 0:2 Function Parameters: 0:2 'input' (in 4-component vector of float) 0:? Sequence diff --git a/Test/baseResults/hlsl.discard.frag.out b/Test/baseResults/hlsl.discard.frag.out new file mode 100755 index 00000000..324029ad --- /dev/null +++ b/Test/baseResults/hlsl.discard.frag.out @@ -0,0 +1,151 @@ +hlsl.discard.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:7 Function Definition: foo(f1; (global void) +0:2 Function Parameters: +0:2 'f' (in float) +0:? Sequence +0:3 Test condition and select (temp void) +0:3 Condition +0:3 Compare Less Than (temp bool) +0:3 'f' (in float) +0:3 Constant: +0:3 1.000000 +0:3 true case +0:4 Branch: Kill +0:15 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:8 Function Parameters: +0:8 'input' (in 4-component vector of float) +0:? Sequence +0:9 Function Call: foo(f1; (global void) +0:9 direct index (temp float) +0:9 'input' (in 4-component vector of float) +0:9 Constant: +0:9 2 (const int) +0:10 Test condition and select (temp void) +0:10 Condition +0:10 direct index (temp float) +0:10 'input' (in 4-component vector of float) +0:10 Constant: +0:10 0 (const int) +0:10 true case +0:11 Branch: Kill +0:12 Sequence +0:12 move second child to first child (temp float) +0:12 'f' (temp float) +0:12 direct index (temp float) +0:12 'input' (in 4-component vector of float) +0:12 Constant: +0:12 0 (const int) +0:13 Branch: Kill +0:? Linker Objects + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:7 Function Definition: foo(f1; (global void) +0:2 Function Parameters: +0:2 'f' (in float) +0:? Sequence +0:3 Test condition and select (temp void) +0:3 Condition +0:3 Compare Less Than (temp bool) +0:3 'f' (in float) +0:3 Constant: +0:3 1.000000 +0:3 true case +0:4 Branch: Kill +0:15 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:8 Function Parameters: +0:8 'input' (in 4-component vector of float) +0:? Sequence +0:9 Function Call: foo(f1; (global void) +0:9 direct index (temp float) +0:9 'input' (in 4-component vector of float) +0:9 Constant: +0:9 2 (const int) +0:10 Test condition and select (temp void) +0:10 Condition +0:10 direct index (temp float) +0:10 'input' (in 4-component vector of float) +0:10 Constant: +0:10 0 (const int) +0:10 true case +0:11 Branch: Kill +0:12 Sequence +0:12 move second child to first child (temp float) +0:12 'f' (temp float) +0:12 direct index (temp float) +0:12 'input' (in 4-component vector of float) +0:12 Constant: +0:12 0 (const int) +0:13 Branch: Kill +0:? Linker Objects + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 39 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "PixelShaderFunction" 21 + ExecutionMode 4 OriginUpperLeft + Source HLSL 450 + Name 4 "PixelShaderFunction" + Name 10 "foo(f1;" + Name 9 "f" + Name 21 "input" + Name 22 "param" + Name 35 "f" + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypePointer Function 6(float) + 8: TypeFunction 2 7(ptr) + 13: 6(float) Constant 1065353216 + 14: TypeBool + 19: TypeVector 6(float) 4 + 20: TypePointer Input 19(fvec4) + 21(input): 20(ptr) Variable Input + 23: TypeInt 32 0 + 24: 23(int) Constant 2 + 25: TypePointer Input 6(float) + 29: 23(int) Constant 0 +4(PixelShaderFunction): 2 Function None 3 + 5: Label + 22(param): 7(ptr) Variable Function + 35(f): 7(ptr) Variable Function + 26: 25(ptr) AccessChain 21(input) 24 + 27: 6(float) Load 26 + Store 22(param) 27 + 28: 2 FunctionCall 10(foo(f1;) 22(param) + 30: 25(ptr) AccessChain 21(input) 29 + 31: 6(float) Load 30 + SelectionMerge 33 None + BranchConditional 31 32 33 + 32: Label + Kill + 33: Label + 36: 25(ptr) AccessChain 21(input) 29 + 37: 6(float) Load 36 + Store 35(f) 37 + Kill + FunctionEnd + 10(foo(f1;): 2 Function None 8 + 9(f): 7(ptr) FunctionParameter + 11: Label + 12: 6(float) Load 9(f) + 15: 14(bool) FOrdLessThan 12 13 + SelectionMerge 17 None + BranchConditional 15 16 17 + 16: Label + Kill + 17: Label + Return + FunctionEnd diff --git a/Test/baseResults/hlsl.doLoop.frag.out b/Test/baseResults/hlsl.doLoop.frag.out index 1ac86d80..c14a3a57 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:7 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) +0:7 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) 0:2 Function Parameters: 0:2 'input' (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:7 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) +0:7 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) 0:2 Function Parameters: 0:2 'input' (in 4-component vector of float) 0:? Sequence diff --git a/Test/baseResults/hlsl.float1.frag.out b/Test/baseResults/hlsl.float1.frag.out index c21931d5..07de03ee 100755 --- a/Test/baseResults/hlsl.float1.frag.out +++ b/Test/baseResults/hlsl.float1.frag.out @@ -2,15 +2,17 @@ hlsl.float1.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:1 move second child to first child (temp 1-component vector of float) -0:1 'f1' (temp 1-component vector of float) -0:1 Constant: -0:1 1.000000 -0:2 move second child to first child (temp float) -0:2 'scalar' (temp float) -0:2 Constant: -0:2 2.000000 -0:8 Function Definition: ShaderFunction(vf1;f1; (temp 1-component vector of float) +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:2 Sequence +0:2 move second child to first child (temp float) +0:2 'scalar' (global float) +0:2 Constant: +0:2 2.000000 +0:8 Function Definition: ShaderFunction(vf1;f1; (global 1-component vector of float) 0:5 Function Parameters: 0:5 'inFloat1' (in 1-component vector of float) 0:5 'inScalar' (in float) @@ -18,14 +20,14 @@ gl_FragCoord origin is upper left 0:6 Branch: Return with expression 0:6 add (temp 1-component vector of float) 0:6 vector-scale (temp 1-component vector of float) -0:6 'f1' (temp 1-component vector of float) -0:6 'scalar' (temp float) +0:6 'f1' (global 1-component vector of float) +0:6 'scalar' (global float) 0:6 vector-scale (temp 1-component vector of float) 0:6 'inFloat1' (in 1-component vector of float) 0:6 'inScalar' (in float) 0:? Linker Objects -0:? 'f1' (temp 1-component vector of float) -0:? 'scalar' (temp float) +0:? 'f1' (global 1-component vector of float) +0:? 'scalar' (global float) Linked fragment stage: @@ -34,15 +36,17 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:1 move second child to first child (temp 1-component vector of float) -0:1 'f1' (temp 1-component vector of float) -0:1 Constant: -0:1 1.000000 -0:2 move second child to first child (temp float) -0:2 'scalar' (temp float) -0:2 Constant: -0:2 2.000000 -0:8 Function Definition: ShaderFunction(vf1;f1; (temp 1-component vector of float) +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:2 Sequence +0:2 move second child to first child (temp float) +0:2 'scalar' (global float) +0:2 Constant: +0:2 2.000000 +0:8 Function Definition: ShaderFunction(vf1;f1; (global 1-component vector of float) 0:5 Function Parameters: 0:5 'inFloat1' (in 1-component vector of float) 0:5 'inScalar' (in float) @@ -50,18 +54,18 @@ gl_FragCoord origin is upper left 0:6 Branch: Return with expression 0:6 add (temp 1-component vector of float) 0:6 vector-scale (temp 1-component vector of float) -0:6 'f1' (temp 1-component vector of float) -0:6 'scalar' (temp float) +0:6 'f1' (global 1-component vector of float) +0:6 'scalar' (global float) 0:6 vector-scale (temp 1-component vector of float) 0:6 'inFloat1' (in 1-component vector of float) 0:6 'inScalar' (in float) 0:? Linker Objects -0:? 'f1' (temp 1-component vector of float) -0:? 'scalar' (temp float) +0:? 'f1' (global 1-component vector of float) +0:? 'scalar' (global float) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 24 +// Id's are bound by 27 Capability Shader 1: ExtInstImport "GLSL.std.450" @@ -73,28 +77,33 @@ gl_FragCoord origin is upper left Name 11 "ShaderFunction(vf1;f1;" Name 9 "inFloat1" Name 10 "inScalar" - Name 13 "f1" - Name 15 "scalar" + Name 14 "f1" + Name 16 "scalar" 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 + 16(scalar): 13(ptr) Variable Private + 17: 6(float) Constant 1073741824 4(PixelShaderFunction): 2 Function None 3 5: Label + Store 14(f1) 15 + Store 16(scalar) 17 FunctionEnd 11(ShaderFunction(vf1;f1;): 6(float) Function None 8 9(inFloat1): 7(ptr) FunctionParameter 10(inScalar): 7(ptr) FunctionParameter 12: Label - 13(f1): 7(ptr) Variable Function - 15(scalar): 7(ptr) Variable Function - 14: 6(float) Load 13(f1) - 16: 6(float) Load 15(scalar) - 17: 6(float) IMul 14 16 - 18: 6(float) Load 9(inFloat1) - 19: 6(float) Load 10(inScalar) + 18: 6(float) Load 14(f1) + 19: 6(float) Load 16(scalar) 20: 6(float) IMul 18 19 - 21: 6(float) FAdd 17 20 - ReturnValue 21 + 21: 6(float) Load 9(inFloat1) + 22: 6(float) Load 10(inScalar) + 23: 6(float) IMul 21 22 + 24: 6(float) FAdd 20 23 + ReturnValue 24 FunctionEnd diff --git a/Test/baseResults/hlsl.float4.frag.out b/Test/baseResults/hlsl.float4.frag.out index 7ad1721d..a086d95e 100755 --- a/Test/baseResults/hlsl.float4.frag.out +++ b/Test/baseResults/hlsl.float4.frag.out @@ -2,27 +2,28 @@ hlsl.float4.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:1 move second child to first child (temp 4-component vector of float) -0:1 'AmbientColor' (temp 4-component vector of float) -0:? Constant: -0:? 1.000000 -0:? 0.500000 -0:? 0.000000 -0:? 1.000000 -0:12 Function Definition: ShaderFunction(vf4; (temp 4-component vector of float) +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:12 Function Definition: ShaderFunction(vf4; (global 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' (temp 4-component vector of float) +0:10 'AmbientColor' (global 4-component vector of float) 0:? Linker Objects -0:? 'AmbientColor' (temp 4-component vector of float) -0:? 'ff1' (temp bool Face) -0:? 'ff2' (temp 4-component vector of float) -0:? 'ff3' (temp 4-component vector of float) -0:? 'ff4' (temp 4-component vector of float FragCoord) +0:? 'AmbientColor' (global 4-component vector of float) +0:? 'ff1' (global bool Face) +0:? 'ff2' (global 4-component vector of float) +0:? 'ff3' (global 4-component vector of float) +0:? 'ff4' (global 4-component vector of float FragCoord) Linked fragment stage: @@ -31,31 +32,32 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:1 move second child to first child (temp 4-component vector of float) -0:1 'AmbientColor' (temp 4-component vector of float) -0:? Constant: -0:? 1.000000 -0:? 0.500000 -0:? 0.000000 -0:? 1.000000 -0:12 Function Definition: ShaderFunction(vf4; (temp 4-component vector of float) +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:12 Function Definition: ShaderFunction(vf4; (global 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' (temp 4-component vector of float) +0:10 'AmbientColor' (global 4-component vector of float) 0:? Linker Objects -0:? 'AmbientColor' (temp 4-component vector of float) -0:? 'ff1' (temp bool Face) -0:? 'ff2' (temp 4-component vector of float) -0:? 'ff3' (temp 4-component vector of float) -0:? 'ff4' (temp 4-component vector of float FragCoord) +0:? 'AmbientColor' (global 4-component vector of float) +0:? 'ff1' (global bool Face) +0:? 'ff2' (global 4-component vector of float) +0:? 'ff3' (global 4-component vector of float) +0:? 'ff4' (global 4-component vector of float FragCoord) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 25 +// Id's are bound by 30 Capability Shader 1: ExtInstImport "GLSL.std.450" @@ -67,33 +69,39 @@ gl_FragCoord origin is upper left Name 11 "ShaderFunction(vf4;" Name 10 "input" Name 14 "AmbientColor" - Name 21 "ff1" - Name 22 "ff2" - Name 23 "ff3" - Name 24 "ff4" - Decorate 21(ff1) BuiltIn FrontFacing - Decorate 24(ff4) BuiltIn FragCoord + Name 26 "ff1" + Name 27 "ff2" + Name 28 "ff3" + Name 29 "ff4" + Decorate 26(ff1) BuiltIn FrontFacing + Decorate 29(ff4) BuiltIn FragCoord 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 8: TypePointer Function 7(fvec4) 9: TypeFunction 7(fvec4) 8(ptr) - 19: TypeBool - 20: TypePointer Function 19(bool) + 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 4(PixelShaderFunction): 2 Function None 3 5: Label + Store 14(AmbientColor) 18 FunctionEnd 11(ShaderFunction(vf4;): 7(fvec4) Function None 9 10(input): 8(ptr) FunctionParameter 12: Label -14(AmbientColor): 8(ptr) Variable Function - 21(ff1): 20(ptr) Variable Function - 22(ff2): 8(ptr) Variable Function - 23(ff3): 8(ptr) Variable Function - 24(ff4): 8(ptr) Variable Function - 13: 7(fvec4) Load 10(input) - 15: 7(fvec4) Load 14(AmbientColor) - 16: 7(fvec4) FMul 13 15 - ReturnValue 16 + 19: 7(fvec4) Load 10(input) + 20: 7(fvec4) Load 14(AmbientColor) + 21: 7(fvec4) FMul 19 20 + ReturnValue 21 FunctionEnd diff --git a/Test/baseResults/hlsl.forLoop.frag.out b/Test/baseResults/hlsl.forLoop.frag.out index 8e2b7922..9764e267 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:9 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) +0:14 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) 0:2 Function Parameters: 0:2 'input' (in 4-component vector of float) 0:? Sequence @@ -52,6 +52,61 @@ gl_FragCoord origin is upper left 0:7 'input' (in 4-component vector of float) 0:7 Constant: 0:7 2.000000 +0:? Sequence +0:8 Loop with condition tested first +0:8 No loop condition +0:8 Loop Body +0:8 Test condition and select (temp void) +0:8 Condition +0:8 Compare Greater Than (temp bool) +0:8 direct index (temp float) +0:8 'input' (in 4-component vector of float) +0:8 Constant: +0:8 0 (const int) +0:8 Constant: +0:8 2.000000 +0:8 true case +0:8 Branch: Break +0:? Sequence +0:9 Loop with condition tested first +0:9 No loop condition +0:9 Loop Body +0:9 Test condition and select (temp void) +0:9 Condition +0:9 Compare Greater Than (temp bool) +0:9 direct index (temp float) +0:9 'input' (in 4-component vector of float) +0:9 Constant: +0:9 0 (const int) +0:9 Constant: +0:9 2.000000 +0:9 true case +0:9 Branch: Continue +0:11 Sequence +0:11 move second child to first child (temp int) +0:11 'ii' (temp int) +0:11 Constant: +0:11 -1 (const int) +0:11 Loop with condition tested first +0:11 Loop Condition +0:11 Compare Less Than (temp bool) +0:11 'ii' (temp int) +0:11 Constant: +0:11 3 (const int) +0:11 Loop Body +0:11 Test condition and select (temp void) +0:11 Condition +0:11 Compare Equal (temp bool) +0:11 'ii' (temp int) +0:11 Constant: +0:11 2 (const int) +0:11 true case +0:11 Branch: Continue +0:11 Loop Terminal Expression +0:11 Pre-Increment (temp int) +0:11 'ii' (temp int) +0:12 Pre-Decrement (temp float) +0:12 'ii' (temp float) 0:? Linker Objects @@ -61,7 +116,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:9 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) +0:14 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) 0:2 Function Parameters: 0:2 'input' (in 4-component vector of float) 0:? Sequence @@ -111,11 +166,66 @@ gl_FragCoord origin is upper left 0:7 'input' (in 4-component vector of float) 0:7 Constant: 0:7 2.000000 +0:? Sequence +0:8 Loop with condition tested first +0:8 No loop condition +0:8 Loop Body +0:8 Test condition and select (temp void) +0:8 Condition +0:8 Compare Greater Than (temp bool) +0:8 direct index (temp float) +0:8 'input' (in 4-component vector of float) +0:8 Constant: +0:8 0 (const int) +0:8 Constant: +0:8 2.000000 +0:8 true case +0:8 Branch: Break +0:? Sequence +0:9 Loop with condition tested first +0:9 No loop condition +0:9 Loop Body +0:9 Test condition and select (temp void) +0:9 Condition +0:9 Compare Greater Than (temp bool) +0:9 direct index (temp float) +0:9 'input' (in 4-component vector of float) +0:9 Constant: +0:9 0 (const int) +0:9 Constant: +0:9 2.000000 +0:9 true case +0:9 Branch: Continue +0:11 Sequence +0:11 move second child to first child (temp int) +0:11 'ii' (temp int) +0:11 Constant: +0:11 -1 (const int) +0:11 Loop with condition tested first +0:11 Loop Condition +0:11 Compare Less Than (temp bool) +0:11 'ii' (temp int) +0:11 Constant: +0:11 3 (const int) +0:11 Loop Body +0:11 Test condition and select (temp void) +0:11 Condition +0:11 Compare Equal (temp bool) +0:11 'ii' (temp int) +0:11 Constant: +0:11 2 (const int) +0:11 true case +0:11 Branch: Continue +0:11 Loop Terminal Expression +0:11 Pre-Increment (temp int) +0:11 'ii' (temp int) +0:12 Pre-Decrement (temp float) +0:12 'ii' (temp float) 0:? Linker Objects // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 64 +// Id's are bound by 112 Capability Shader 1: ExtInstImport "GLSL.std.450" @@ -125,6 +235,8 @@ gl_FragCoord origin is upper left Source HLSL 450 Name 4 "PixelShaderFunction" Name 13 "input" + Name 89 "ii" + Name 109 "ii" 2: TypeVoid 3: TypeFunction 2 10: TypeFloat 32 @@ -135,8 +247,20 @@ gl_FragCoord origin is upper left 29: TypeBool 30: TypeVector 29(bool) 4 60: 10(float) Constant 1073741824 + 68: TypeInt 32 0 + 69: 68(int) Constant 0 + 70: TypePointer Input 10(float) + 87: TypeInt 32 1 + 88: TypePointer Function 87(int) + 90: 87(int) Constant 4294967295 + 97: 87(int) Constant 3 + 100: 87(int) Constant 2 + 106: 87(int) Constant 1 + 108: TypePointer Function 10(float) 4(PixelShaderFunction): 2 Function None 3 5: Label + 89(ii): 88(ptr) Variable Function + 109(ii): 108(ptr) Variable Function Branch 6 6: Label LoopMerge 8 9 None @@ -216,5 +340,66 @@ gl_FragCoord origin is upper left Store 13(input) 63 Branch 48 50: Label + Branch 64 + 64: Label + LoopMerge 66 67 None + Branch 65 + 65: Label + 71: 70(ptr) AccessChain 13(input) 69 + 72: 10(float) Load 71 + 73: 29(bool) FOrdGreaterThan 72 60 + SelectionMerge 75 None + BranchConditional 73 74 75 + 74: Label + Branch 66 + 75: Label + Branch 67 + 67: Label + Branch 64 + 66: Label + Branch 77 + 77: Label + LoopMerge 79 80 None + Branch 78 + 78: Label + 81: 70(ptr) AccessChain 13(input) 69 + 82: 10(float) Load 81 + 83: 29(bool) FOrdGreaterThan 82 60 + SelectionMerge 85 None + BranchConditional 83 84 85 + 84: Label + Branch 80 + 85: Label + Branch 80 + 80: Label + Branch 77 + 79: Label + Store 89(ii) 90 + Branch 91 + 91: Label + LoopMerge 93 94 None + Branch 95 + 95: Label + 96: 87(int) Load 89(ii) + 98: 29(bool) SLessThan 96 97 + BranchConditional 98 92 93 + 92: Label + 99: 87(int) Load 89(ii) + 101: 29(bool) IEqual 99 100 + SelectionMerge 103 None + BranchConditional 101 102 103 + 102: Label + Branch 94 + 103: Label + Branch 94 + 94: Label + 105: 87(int) Load 89(ii) + 107: 87(int) IAdd 105 106 + Store 89(ii) 107 + Branch 91 + 93: Label + 110: 10(float) Load 109(ii) + 111: 10(float) FSub 110 15 + Store 109(ii) 111 Return FunctionEnd diff --git a/Test/baseResults/hlsl.if.frag.out b/Test/baseResults/hlsl.if.frag.out index a5a6a67e..4554ec6a 100755 --- a/Test/baseResults/hlsl.if.frag.out +++ b/Test/baseResults/hlsl.if.frag.out @@ -2,7 +2,7 @@ hlsl.if.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:29 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) +0:34 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) 0:2 Function Parameters: 0:2 'input' (in 4-component vector of float) 0:? Sequence @@ -61,6 +61,19 @@ gl_FragCoord origin is upper left 0:26 Branch: Return with expression 0:26 Negate value (temp 4-component vector of float) 0:26 'input' (in 4-component vector of float) +0:30 Test condition and select (temp void) +0:30 Condition +0:30 move second child to first child (temp float) +0:30 'ii' (temp float) +0:30 direct index (temp float) +0:30 'input' (in 4-component vector of float) +0:30 Constant: +0:30 2 (const int) +0:30 true case +0:31 Pre-Increment (temp float) +0:31 'ii' (temp float) +0:32 Pre-Increment (temp int) +0:32 'ii' (temp int) 0:? Linker Objects @@ -70,7 +83,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:29 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) +0:34 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) 0:2 Function Parameters: 0:2 'input' (in 4-component vector of float) 0:? Sequence @@ -129,11 +142,24 @@ gl_FragCoord origin is upper left 0:26 Branch: Return with expression 0:26 Negate value (temp 4-component vector of float) 0:26 'input' (in 4-component vector of float) +0:30 Test condition and select (temp void) +0:30 Condition +0:30 move second child to first child (temp float) +0:30 'ii' (temp float) +0:30 direct index (temp float) +0:30 'input' (in 4-component vector of float) +0:30 Constant: +0:30 2 (const int) +0:30 true case +0:31 Pre-Increment (temp float) +0:31 'ii' (temp float) +0:32 Pre-Increment (temp int) +0:32 'ii' (temp int) 0:? Linker Objects // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 64 +// Id's are bound by 82 Capability Shader 1: ExtInstImport "GLSL.std.450" @@ -143,6 +169,8 @@ gl_FragCoord origin is upper left Source HLSL 450 Name 4 "PixelShaderFunction" Name 9 "input" + Name 65 "ii" + Name 78 "ii" 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -151,8 +179,18 @@ gl_FragCoord origin is upper left 9(input): 8(ptr) Variable Input 12: TypeBool 13: TypeVector 12(bool) 4 + 64: TypePointer Function 6(float) + 66: TypeInt 32 0 + 67: 66(int) Constant 2 + 68: TypePointer Input 6(float) + 74: 6(float) Constant 1065353216 + 76: TypeInt 32 1 + 77: TypePointer Function 76(int) + 80: 76(int) Constant 1 4(PixelShaderFunction): 2 Function None 3 5: Label + 65(ii): 64(ptr) Variable Function + 78(ii): 77(ptr) Variable Function 10: 7(fvec4) Load 9(input) 11: 7(fvec4) Load 9(input) 14: 13(bvec4) FOrdEqual 10 11 @@ -219,5 +257,19 @@ gl_FragCoord origin is upper left 62: 7(fvec4) FNegate 61 ReturnValue 62 57: Label + 69: 68(ptr) AccessChain 9(input) 67 + 70: 6(float) Load 69 + Store 65(ii) 70 + SelectionMerge 72 None + BranchConditional 70 71 72 + 71: Label + 73: 6(float) Load 65(ii) + 75: 6(float) FAdd 73 74 + Store 65(ii) 75 + Branch 72 + 72: Label + 79: 76(int) Load 78(ii) + 81: 76(int) IAdd 79 80 + Store 78(ii) 81 Return FunctionEnd diff --git a/Test/baseResults/hlsl.init.frag.out b/Test/baseResults/hlsl.init.frag.out new file mode 100755 index 00000000..1a4c8024 --- /dev/null +++ b/Test/baseResults/hlsl.init.frag.out @@ -0,0 +1,369 @@ +hlsl.init.frag +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 'a1' (global 4-component vector of float) +0:? Constant: +0:? 1.000000 +0:? 0.500000 +0:? 0.000000 +0:? 1.000000 +0:1 move second child to first child (temp 4-component vector of float) +0:1 'b1' (global 4-component vector of float) +0:? Constant: +0:? 2.000000 +0:? 2.500000 +0:? 2.100000 +0:? 2.200000 +0:2 Sequence +0:2 move second child to first child (temp 4-component vector of float) +0:2 'a1i' (global 4-component vector of float) +0:2 Constant: +0:2 1.000000 +0:2 0.500000 +0:2 0.000000 +0:2 1.000000 +0:2 move second child to first child (temp 4-component vector of float) +0:2 'b1i' (global 4-component vector of float) +0:2 Constant: +0:2 2.000000 +0:2 2.500000 +0:2 2.100000 +0:2 2.200000 +0:3 Sequence +0:3 move second child to first child (temp float) +0:3 'a2' (global float) +0:3 Constant: +0:3 0.200000 +0:4 Sequence +0:4 move second child to first child (temp float) +0:4 'b3' (global float) +0:4 Constant: +0:4 0.300000 +0:5 Sequence +0:5 move second child to first child (temp float) +0:5 'b4' (global float) +0:5 Constant: +0:5 0.400000 +0:6 Sequence +0:6 move second child to first child (temp float) +0:6 'a5' (global float) +0:6 Constant: +0:6 0.500000 +0:6 move second child to first child (temp float) +0:6 'c5' (global float) +0:6 Constant: +0:6 1.500000 +0:25 Function Definition: ShaderFunction(vf4; (global 4-component vector of float) +0:9 Function Parameters: +0:9 'input' (in 4-component vector of float) +0:? Sequence +0:10 Sequence +0:10 move second child to first child (temp 4-component vector of float) +0:10 'a2' (temp 4-component vector of float) +0:? Constant: +0:? 0.200000 +0:? 0.300000 +0:? 0.400000 +0:? 0.500000 +0:20 Sequence +0:20 move second child to first child (temp structure{temp int j, temp float g, temp structure{temp float f, temp int i} s1}) +0:20 's2i' (temp structure{temp int j, temp float g, temp structure{temp float f, temp int i} s1}) +0:20 Construct structure (temp structure{temp int j, temp float g, temp structure{temp float f, temp int i} s1}) +0:20 Constant: +0:20 9 (const int) +0:20 'a5' (global float) +0:20 Construct structure (temp structure{temp float f, temp int i}) +0:20 Comma (temp float) +0:20 'a3' (global float) +0:20 'a4' (global float) +0:20 Constant: +0:20 12 (const int) +0:20 move second child to first child (temp structure{temp int j, temp float g, temp structure{temp float f, temp int i} s1}) +0:20 's2' (temp structure{temp int j, temp float g, temp structure{temp float f, temp int i} s1}) +0:? Construct structure (temp structure{temp int j, temp float g, temp structure{temp float f, temp int i} s1}) +0:20 Constant: +0:20 9 (const int) +0:20 'a5' (global float) +0:? Construct structure (temp structure{temp float f, temp int i}) +0:20 Comma (temp float) +0:20 'a3' (global float) +0:20 'a4' (global float) +0:20 Constant: +0:20 12 (const int) +0:21 Sequence +0:21 move second child to first child (temp float) +0:21 'a8' (temp float) +0:21 Comma (temp float) +0:21 'a2' (temp 4-component vector of float) +0:21 'b2' (global float) +0:21 move second child to first child (temp float) +0:21 'a9' (temp float) +0:21 'a5' (global float) +0:23 Branch: Return with expression +0:23 component-wise multiply (temp 4-component vector of float) +0:23 'input' (in 4-component vector of float) +0:23 'a1' (global 4-component vector of float) +0:? Linker Objects +0:? 'a1' (global 4-component vector of float) +0:? 'b1' (global 4-component vector of float) +0:? 'a1i' (global 4-component vector of float) +0:? 'b1i' (global 4-component vector of float) +0:? 'a2' (global float) +0:? 'b2' (global float) +0:? 'a3' (global float) +0:? 'b3' (global float) +0:? 'a4' (global float) +0:? 'b4' (global float) +0:? 'c4' (global float) +0:? 'a5' (global float) +0:? 'b5' (global float) +0:? 'c5' (global float) + + +Linked fragment stage: + + +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 'a1' (global 4-component vector of float) +0:? Constant: +0:? 1.000000 +0:? 0.500000 +0:? 0.000000 +0:? 1.000000 +0:1 move second child to first child (temp 4-component vector of float) +0:1 'b1' (global 4-component vector of float) +0:? Constant: +0:? 2.000000 +0:? 2.500000 +0:? 2.100000 +0:? 2.200000 +0:2 Sequence +0:2 move second child to first child (temp 4-component vector of float) +0:2 'a1i' (global 4-component vector of float) +0:2 Constant: +0:2 1.000000 +0:2 0.500000 +0:2 0.000000 +0:2 1.000000 +0:2 move second child to first child (temp 4-component vector of float) +0:2 'b1i' (global 4-component vector of float) +0:2 Constant: +0:2 2.000000 +0:2 2.500000 +0:2 2.100000 +0:2 2.200000 +0:3 Sequence +0:3 move second child to first child (temp float) +0:3 'a2' (global float) +0:3 Constant: +0:3 0.200000 +0:4 Sequence +0:4 move second child to first child (temp float) +0:4 'b3' (global float) +0:4 Constant: +0:4 0.300000 +0:5 Sequence +0:5 move second child to first child (temp float) +0:5 'b4' (global float) +0:5 Constant: +0:5 0.400000 +0:6 Sequence +0:6 move second child to first child (temp float) +0:6 'a5' (global float) +0:6 Constant: +0:6 0.500000 +0:6 move second child to first child (temp float) +0:6 'c5' (global float) +0:6 Constant: +0:6 1.500000 +0:25 Function Definition: ShaderFunction(vf4; (global 4-component vector of float) +0:9 Function Parameters: +0:9 'input' (in 4-component vector of float) +0:? Sequence +0:10 Sequence +0:10 move second child to first child (temp 4-component vector of float) +0:10 'a2' (temp 4-component vector of float) +0:? Constant: +0:? 0.200000 +0:? 0.300000 +0:? 0.400000 +0:? 0.500000 +0:20 Sequence +0:20 move second child to first child (temp structure{temp int j, temp float g, temp structure{temp float f, temp int i} s1}) +0:20 's2i' (temp structure{temp int j, temp float g, temp structure{temp float f, temp int i} s1}) +0:20 Construct structure (temp structure{temp int j, temp float g, temp structure{temp float f, temp int i} s1}) +0:20 Constant: +0:20 9 (const int) +0:20 'a5' (global float) +0:20 Construct structure (temp structure{temp float f, temp int i}) +0:20 Comma (temp float) +0:20 'a3' (global float) +0:20 'a4' (global float) +0:20 Constant: +0:20 12 (const int) +0:20 move second child to first child (temp structure{temp int j, temp float g, temp structure{temp float f, temp int i} s1}) +0:20 's2' (temp structure{temp int j, temp float g, temp structure{temp float f, temp int i} s1}) +0:? Construct structure (temp structure{temp int j, temp float g, temp structure{temp float f, temp int i} s1}) +0:20 Constant: +0:20 9 (const int) +0:20 'a5' (global float) +0:? Construct structure (temp structure{temp float f, temp int i}) +0:20 Comma (temp float) +0:20 'a3' (global float) +0:20 'a4' (global float) +0:20 Constant: +0:20 12 (const int) +0:21 Sequence +0:21 move second child to first child (temp float) +0:21 'a8' (temp float) +0:21 Comma (temp float) +0:21 'a2' (temp 4-component vector of float) +0:21 'b2' (global float) +0:21 move second child to first child (temp float) +0:21 'a9' (temp float) +0:21 'a5' (global float) +0:23 Branch: Return with expression +0:23 component-wise multiply (temp 4-component vector of float) +0:23 'input' (in 4-component vector of float) +0:23 'a1' (global 4-component vector of float) +0:? Linker Objects +0:? 'a1' (global 4-component vector of float) +0:? 'b1' (global 4-component vector of float) +0:? 'a1i' (global 4-component vector of float) +0:? 'b1i' (global 4-component vector of float) +0:? 'a2' (global float) +0:? 'b2' (global float) +0:? 'a3' (global float) +0:? 'b3' (global float) +0:? 'a4' (global float) +0:? 'b4' (global float) +0:? 'c4' (global float) +0:? 'a5' (global float) +0:? 'b5' (global float) +0:? 'c5' (global float) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 67 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "ShaderFunction" 60 + ExecutionMode 4 OriginUpperLeft + Source HLSL 450 + Name 4 "ShaderFunction" + Name 9 "a1" + Name 14 "b1" + Name 20 "a1i" + Name 21 "b1i" + Name 23 "a2" + Name 25 "b3" + Name 27 "b4" + Name 29 "a5" + Name 30 "c5" + Name 33 "a2" + Name 36 "S1" + MemberName 36(S1) 0 "f" + MemberName 36(S1) 1 "i" + Name 37 "S2" + MemberName 37(S2) 0 "j" + MemberName 37(S2) 1 "g" + MemberName 37(S2) 2 "s1" + Name 39 "s2i" + Name 42 "a3" + Name 43 "a4" + Name 48 "s2" + Name 54 "a8" + Name 55 "b2" + Name 57 "a9" + Name 60 "input" + Name 65 "c4" + Name 66 "b5" + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Private 7(fvec4) + 9(a1): 8(ptr) Variable Private + 10: 6(float) Constant 1065353216 + 11: 6(float) Constant 1056964608 + 12: 6(float) Constant 0 + 13: 7(fvec4) ConstantComposite 10 11 12 10 + 14(b1): 8(ptr) Variable Private + 15: 6(float) Constant 1073741824 + 16: 6(float) Constant 1075838976 + 17: 6(float) Constant 1074161254 + 18: 6(float) Constant 1074580685 + 19: 7(fvec4) ConstantComposite 15 16 17 18 + 20(a1i): 8(ptr) Variable Private + 21(b1i): 8(ptr) Variable Private + 22: TypePointer Private 6(float) + 23(a2): 22(ptr) Variable Private + 24: 6(float) Constant 1045220557 + 25(b3): 22(ptr) Variable Private + 26: 6(float) Constant 1050253722 + 27(b4): 22(ptr) Variable Private + 28: 6(float) Constant 1053609165 + 29(a5): 22(ptr) Variable Private + 30(c5): 22(ptr) Variable Private + 31: 6(float) Constant 1069547520 + 32: TypePointer Function 7(fvec4) + 34: 7(fvec4) ConstantComposite 24 26 28 11 + 35: TypeInt 32 1 + 36(S1): TypeStruct 6(float) 35(int) + 37(S2): TypeStruct 35(int) 6(float) 36(S1) + 38: TypePointer Function 37(S2) + 40: 35(int) Constant 9 + 42(a3): 22(ptr) Variable Private + 43(a4): 22(ptr) Variable Private + 45: 35(int) Constant 12 + 53: TypePointer Function 6(float) + 55(b2): 22(ptr) Variable Private + 59: TypePointer Input 7(fvec4) + 60(input): 59(ptr) Variable Input + 65(c4): 22(ptr) Variable Private + 66(b5): 22(ptr) Variable Private +4(ShaderFunction): 2 Function None 3 + 5: Label + 33(a2): 32(ptr) Variable Function + 39(s2i): 38(ptr) Variable Function + 48(s2): 38(ptr) Variable Function + 54(a8): 53(ptr) Variable Function + 57(a9): 53(ptr) Variable Function + Store 9(a1) 13 + Store 14(b1) 19 + Store 20(a1i) 13 + Store 21(b1i) 19 + Store 23(a2) 24 + Store 25(b3) 26 + Store 27(b4) 28 + Store 29(a5) 11 + Store 30(c5) 31 + Store 33(a2) 34 + 41: 6(float) Load 29(a5) + 44: 6(float) Load 43(a4) + 46: 36(S1) CompositeConstruct 44 45 + 47: 37(S2) CompositeConstruct 40 41 46 + Store 39(s2i) 47 + 49: 6(float) Load 29(a5) + 50: 6(float) Load 43(a4) + 51: 36(S1) CompositeConstruct 50 45 + 52: 37(S2) CompositeConstruct 40 49 51 + Store 48(s2) 52 + 56: 6(float) Load 55(b2) + Store 54(a8) 56 + 58: 6(float) Load 29(a5) + Store 57(a9) 58 + 61: 7(fvec4) Load 60(input) + 62: 7(fvec4) Load 9(a1) + 63: 7(fvec4) FMul 61 62 + ReturnValue 63 + FunctionEnd diff --git a/Test/baseResults/hlsl.intrinsics.barriers.comp.out b/Test/baseResults/hlsl.intrinsics.barriers.comp.out index ba8a04b6..c400fea3 100644 --- a/Test/baseResults/hlsl.intrinsics.barriers.comp.out +++ b/Test/baseResults/hlsl.intrinsics.barriers.comp.out @@ -2,7 +2,7 @@ hlsl.intrinsics.barriers.comp Shader version: 450 local_size = (1, 1, 1) 0:? Sequence -0:14 Function Definition: ComputeShaderFunction( (temp float) +0:14 Function Definition: ComputeShaderFunction( (global float) 0:3 Function Parameters: 0:? Sequence 0:4 MemoryBarrier (global void) @@ -23,7 +23,7 @@ Linked compute stage: Shader version: 450 local_size = (1, 1, 1) 0:? Sequence -0:14 Function Definition: ComputeShaderFunction( (temp float) +0:14 Function Definition: ComputeShaderFunction( (global float) 0:3 Function Parameters: 0:? Sequence 0:4 MemoryBarrier (global void) diff --git a/Test/baseResults/hlsl.intrinsics.comp.out b/Test/baseResults/hlsl.intrinsics.comp.out index d6012df9..4c7eabbc 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:44 Function Definition: ComputeShaderFunction(f1;f1;f1;u1;u1; (temp float) +0:44 Function Definition: ComputeShaderFunctionS(f1;f1;f1;u1;u1; (global float) 0:17 Function Parameters: 0:17 'inF0' (in float) 0:17 'inF1' (in float) @@ -13,68 +13,68 @@ local_size = (1, 1, 1) 0:21 all (global bool) 0:21 'inF0' (in float) 0:24 AtomicAdd (global void) -0:24 'gs_ua' (temp uint) -0:24 'gs_ub' (temp uint) +0:24 'gs_ua' (global uint) +0:24 'gs_ub' (global uint) 0:25 move second child to first child (temp uint) 0:25 'out_u1' (temp uint) 0:25 AtomicAdd (temp uint) -0:25 'gs_ua' (temp uint) -0:25 'gs_ub' (temp uint) +0:25 'gs_ua' (global uint) +0:25 'gs_ub' (global uint) 0:26 AtomicAnd (global void) -0:26 'gs_ua' (temp uint) -0:26 'gs_ub' (temp uint) +0:26 'gs_ua' (global uint) +0:26 'gs_ub' (global uint) 0:27 move second child to first child (temp uint) 0:27 'out_u1' (temp uint) 0:27 AtomicAnd (temp uint) -0:27 'gs_ua' (temp uint) -0:27 'gs_ub' (temp uint) +0:27 'gs_ua' (global uint) +0:27 'gs_ub' (global uint) 0:28 move second child to first child (temp uint) 0:28 'out_u1' (temp uint) 0:28 AtomicCompSwap (temp uint) -0:28 'gs_ua' (temp uint) -0:28 'gs_ub' (temp uint) -0:28 'gs_uc' (temp uint) +0:28 'gs_ua' (global uint) +0:28 'gs_ub' (global uint) +0:28 'gs_uc' (global uint) 0:29 move second child to first child (temp uint) 0:29 'out_u1' (temp uint) 0:29 AtomicExchange (temp uint) -0:29 'gs_ua' (temp uint) -0:29 'gs_ub' (temp uint) +0:29 'gs_ua' (global uint) +0:29 'gs_ub' (global uint) 0:30 AtomicMax (global void) -0:30 'gs_ua' (temp uint) -0:30 'gs_ub' (temp uint) +0:30 'gs_ua' (global uint) +0:30 'gs_ub' (global uint) 0:31 move second child to first child (temp uint) 0:31 'out_u1' (temp uint) 0:31 AtomicMax (temp uint) -0:31 'gs_ua' (temp uint) -0:31 'gs_ub' (temp uint) +0:31 'gs_ua' (global uint) +0:31 'gs_ub' (global uint) 0:32 AtomicMin (global void) -0:32 'gs_ua' (temp uint) -0:32 'gs_ub' (temp uint) +0:32 'gs_ua' (global uint) +0:32 'gs_ub' (global uint) 0:33 move second child to first child (temp uint) 0:33 'out_u1' (temp uint) 0:33 AtomicMin (temp uint) -0:33 'gs_ua' (temp uint) -0:33 'gs_ub' (temp uint) +0:33 'gs_ua' (global uint) +0:33 'gs_ub' (global uint) 0:34 AtomicOr (global void) -0:34 'gs_ua' (temp uint) -0:34 'gs_ub' (temp uint) +0:34 'gs_ua' (global uint) +0:34 'gs_ub' (global uint) 0:35 move second child to first child (temp uint) 0:35 'out_u1' (temp uint) 0:35 AtomicOr (temp uint) -0:35 'gs_ua' (temp uint) -0:35 'gs_ub' (temp uint) +0:35 'gs_ua' (global uint) +0:35 'gs_ub' (global uint) 0:36 AtomicXor (global void) -0:36 'gs_ua' (temp uint) -0:36 'gs_ub' (temp uint) +0:36 'gs_ua' (global uint) +0:36 'gs_ub' (global uint) 0:37 move second child to first child (temp uint) 0:37 'out_u1' (temp uint) 0:37 AtomicXor (temp uint) -0:37 'gs_ua' (temp uint) -0:37 'gs_ub' (temp uint) +0:37 'gs_ua' (global uint) +0:37 'gs_ub' (global uint) 0:41 Branch: Return with expression 0:41 Constant: 0:41 0.000000 -0:50 Function Definition: ComputeShaderFunction(vf1;vf1;vf1; (temp 1-component vector of float) +0:50 Function Definition: ComputeShaderFunction1(vf1;vf1;vf1; (global 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:77 Function Definition: ComputeShaderFunction(vf2;vf2;vf2;vu2;vu2; (temp 2-component vector of float) +0:77 Function Definition: ComputeShaderFunction2(vf2;vf2;vf2;vu2;vu2; (global 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) @@ -94,69 +94,69 @@ local_size = (1, 1, 1) 0:55 all (global bool) 0:55 'inF0' (in 2-component vector of float) 0:58 AtomicAdd (global void) -0:58 'gs_ua2' (temp 2-component vector of uint) -0:58 'gs_ub2' (temp 2-component vector of uint) +0:58 'gs_ua2' (global 2-component vector of uint) +0:58 'gs_ub2' (global 2-component vector of uint) 0:59 move second child to first child (temp 2-component vector of uint) 0:59 'out_u2' (temp 2-component vector of uint) 0:59 AtomicAdd (temp 2-component vector of uint) -0:59 'gs_ua2' (temp 2-component vector of uint) -0:59 'gs_ub2' (temp 2-component vector of uint) +0: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' (temp 2-component vector of uint) -0:60 'gs_ub2' (temp 2-component vector of uint) +0:60 'gs_ua2' (global 2-component vector of uint) +0:60 'gs_ub2' (global 2-component vector of uint) 0:61 move second child to first child (temp 2-component vector of uint) 0:61 'out_u2' (temp 2-component vector of uint) 0:61 AtomicAnd (temp 2-component vector of uint) -0:61 'gs_ua2' (temp 2-component vector of uint) -0:61 'gs_ub2' (temp 2-component vector of uint) +0:61 'gs_ua2' (global 2-component vector of uint) +0:61 'gs_ub2' (global 2-component vector of uint) 0:62 move second child to first child (temp 2-component vector of uint) 0:62 'out_u2' (temp 2-component vector of uint) 0:62 AtomicCompSwap (temp 2-component vector of uint) -0:62 'gs_ua2' (temp 2-component vector of uint) -0:62 'gs_ub2' (temp 2-component vector of uint) -0:62 'gs_uc2' (temp 2-component vector of uint) +0: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:63 move second child to first child (temp 2-component vector of uint) 0:63 'out_u2' (temp 2-component vector of uint) 0:63 AtomicExchange (temp 2-component vector of uint) -0:63 'gs_ua2' (temp 2-component vector of uint) -0:63 'gs_ub2' (temp 2-component vector of uint) +0: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' (temp 2-component vector of uint) -0:64 'gs_ub2' (temp 2-component vector of uint) +0:64 'gs_ua2' (global 2-component vector of uint) +0:64 'gs_ub2' (global 2-component vector of uint) 0:65 move second child to first child (temp 2-component vector of uint) 0:65 'out_u2' (temp 2-component vector of uint) 0:65 AtomicMax (temp 2-component vector of uint) -0:65 'gs_ua2' (temp 2-component vector of uint) -0:65 'gs_ub2' (temp 2-component vector of uint) +0: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' (temp 2-component vector of uint) -0:66 'gs_ub2' (temp 2-component vector of uint) +0:66 'gs_ua2' (global 2-component vector of uint) +0:66 'gs_ub2' (global 2-component vector of uint) 0:67 move second child to first child (temp 2-component vector of uint) 0:67 'out_u2' (temp 2-component vector of uint) 0:67 AtomicMin (temp 2-component vector of uint) -0:67 'gs_ua2' (temp 2-component vector of uint) -0:67 'gs_ub2' (temp 2-component vector of uint) +0: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' (temp 2-component vector of uint) -0:68 'gs_ub2' (temp 2-component vector of uint) +0:68 'gs_ua2' (global 2-component vector of uint) +0:68 'gs_ub2' (global 2-component vector of uint) 0:69 move second child to first child (temp 2-component vector of uint) 0:69 'out_u2' (temp 2-component vector of uint) 0:69 AtomicOr (temp 2-component vector of uint) -0:69 'gs_ua2' (temp 2-component vector of uint) -0:69 'gs_ub2' (temp 2-component vector of uint) +0: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' (temp 2-component vector of uint) -0:70 'gs_ub2' (temp 2-component vector of uint) +0:70 'gs_ua2' (global 2-component vector of uint) +0:70 'gs_ub2' (global 2-component vector of uint) 0:71 move second child to first child (temp 2-component vector of uint) 0:71 'out_u2' (temp 2-component vector of uint) 0:71 AtomicXor (temp 2-component vector of uint) -0:71 'gs_ua2' (temp 2-component vector of uint) -0:71 'gs_ub2' (temp 2-component vector of uint) +0:71 'gs_ua2' (global 2-component vector of uint) +0:71 'gs_ub2' (global 2-component vector of uint) 0:74 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 -0:104 Function Definition: ComputeShaderFunction(vf3;vf3;vf3;vu3;vu3; (temp 3-component vector of float) +0:104 Function Definition: ComputeShaderFunction3(vf3;vf3;vf3;vu3;vu3; (global 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) @@ -167,70 +167,70 @@ local_size = (1, 1, 1) 0:82 all (global bool) 0:82 'inF0' (in 3-component vector of float) 0:85 AtomicAdd (global void) -0:85 'gs_ua3' (temp 3-component vector of uint) -0:85 'gs_ub3' (temp 3-component vector of uint) +0:85 'gs_ua3' (global 3-component vector of uint) +0:85 'gs_ub3' (global 3-component vector of uint) 0:86 move second child to first child (temp 3-component vector of uint) 0:86 'out_u3' (temp 3-component vector of uint) 0:86 AtomicAdd (temp 3-component vector of uint) -0:86 'gs_ua3' (temp 3-component vector of uint) -0:86 'gs_ub3' (temp 3-component vector of uint) +0: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' (temp 3-component vector of uint) -0:87 'gs_ub3' (temp 3-component vector of uint) +0:87 'gs_ua3' (global 3-component vector of uint) +0:87 'gs_ub3' (global 3-component vector of uint) 0:88 move second child to first child (temp 3-component vector of uint) 0:88 'out_u3' (temp 3-component vector of uint) 0:88 AtomicAnd (temp 3-component vector of uint) -0:88 'gs_ua3' (temp 3-component vector of uint) -0:88 'gs_ub3' (temp 3-component vector of uint) +0:88 'gs_ua3' (global 3-component vector of uint) +0:88 'gs_ub3' (global 3-component vector of uint) 0:89 move second child to first child (temp 3-component vector of uint) 0:89 'out_u3' (temp 3-component vector of uint) 0:89 AtomicCompSwap (temp 3-component vector of uint) -0:89 'gs_ua3' (temp 3-component vector of uint) -0:89 'gs_ub3' (temp 3-component vector of uint) -0:89 'gs_uc3' (temp 3-component vector of uint) +0: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:90 move second child to first child (temp 3-component vector of uint) 0:90 'out_u3' (temp 3-component vector of uint) 0:90 AtomicExchange (temp 3-component vector of uint) -0:90 'gs_ua3' (temp 3-component vector of uint) -0:90 'gs_ub3' (temp 3-component vector of uint) +0: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' (temp 3-component vector of uint) -0:91 'gs_ub3' (temp 3-component vector of uint) +0:91 'gs_ua3' (global 3-component vector of uint) +0:91 'gs_ub3' (global 3-component vector of uint) 0:92 move second child to first child (temp 3-component vector of uint) 0:92 'out_u3' (temp 3-component vector of uint) 0:92 AtomicMax (temp 3-component vector of uint) -0:92 'gs_ua3' (temp 3-component vector of uint) -0:92 'gs_ub3' (temp 3-component vector of uint) +0: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' (temp 3-component vector of uint) -0:93 'gs_ub3' (temp 3-component vector of uint) +0:93 'gs_ua3' (global 3-component vector of uint) +0:93 'gs_ub3' (global 3-component vector of uint) 0:94 move second child to first child (temp 3-component vector of uint) 0:94 'out_u3' (temp 3-component vector of uint) 0:94 AtomicMin (temp 3-component vector of uint) -0:94 'gs_ua3' (temp 3-component vector of uint) -0:94 'gs_ub3' (temp 3-component vector of uint) +0: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' (temp 3-component vector of uint) -0:95 'gs_ub3' (temp 3-component vector of uint) +0:95 'gs_ua3' (global 3-component vector of uint) +0:95 'gs_ub3' (global 3-component vector of uint) 0:96 move second child to first child (temp 3-component vector of uint) 0:96 'out_u3' (temp 3-component vector of uint) 0:96 AtomicOr (temp 3-component vector of uint) -0:96 'gs_ua3' (temp 3-component vector of uint) -0:96 'gs_ub3' (temp 3-component vector of uint) +0: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' (temp 3-component vector of uint) -0:97 'gs_ub3' (temp 3-component vector of uint) +0:97 'gs_ua3' (global 3-component vector of uint) +0:97 'gs_ub3' (global 3-component vector of uint) 0:98 move second child to first child (temp 3-component vector of uint) 0:98 'out_u3' (temp 3-component vector of uint) 0:98 AtomicXor (temp 3-component vector of uint) -0:98 'gs_ua3' (temp 3-component vector of uint) -0:98 'gs_ub3' (temp 3-component vector of uint) +0:98 'gs_ua3' (global 3-component vector of uint) +0:98 'gs_ub3' (global 3-component vector of uint) 0:101 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 -0:130 Function Definition: ComputeShaderFunction(vf4;vf4;vf4;vu4;vu4; (temp 4-component vector of float) +0:130 Function Definition: ComputeShaderFunction(vf4;vf4;vf4;vu4;vu4; (global 4-component vector of float) 0:105 Function Parameters: 0:105 'inF0' (in 4-component vector of float) 0:105 'inF1' (in 4-component vector of float) @@ -241,64 +241,64 @@ local_size = (1, 1, 1) 0:109 all (global bool) 0:109 'inF0' (in 4-component vector of float) 0:112 AtomicAdd (global void) -0:112 'gs_ua4' (temp 4-component vector of uint) -0:112 'gs_ub4' (temp 4-component vector of uint) +0:112 'gs_ua4' (global 4-component vector of uint) +0:112 'gs_ub4' (global 4-component vector of uint) 0:113 move second child to first child (temp 4-component vector of uint) 0:113 'out_u4' (temp 4-component vector of uint) 0:113 AtomicAdd (temp 4-component vector of uint) -0:113 'gs_ua4' (temp 4-component vector of uint) -0:113 'gs_ub4' (temp 4-component vector of uint) +0: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' (temp 4-component vector of uint) -0:114 'gs_ub4' (temp 4-component vector of uint) +0:114 'gs_ua4' (global 4-component vector of uint) +0:114 'gs_ub4' (global 4-component vector of uint) 0:115 move second child to first child (temp 4-component vector of uint) 0:115 'out_u4' (temp 4-component vector of uint) 0:115 AtomicAnd (temp 4-component vector of uint) -0:115 'gs_ua4' (temp 4-component vector of uint) -0:115 'gs_ub4' (temp 4-component vector of uint) +0:115 'gs_ua4' (global 4-component vector of uint) +0:115 'gs_ub4' (global 4-component vector of uint) 0:116 move second child to first child (temp 4-component vector of uint) 0:116 'out_u4' (temp 4-component vector of uint) 0:116 AtomicCompSwap (temp 4-component vector of uint) -0:116 'gs_ua4' (temp 4-component vector of uint) -0:116 'gs_ub4' (temp 4-component vector of uint) -0:116 'gs_uc4' (temp 4-component vector of uint) +0: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:117 move second child to first child (temp 4-component vector of uint) 0:117 'out_u4' (temp 4-component vector of uint) 0:117 AtomicExchange (temp 4-component vector of uint) -0:117 'gs_ua4' (temp 4-component vector of uint) -0:117 'gs_ub4' (temp 4-component vector of uint) +0: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' (temp 4-component vector of uint) -0:118 'gs_ub4' (temp 4-component vector of uint) +0:118 'gs_ua4' (global 4-component vector of uint) +0:118 'gs_ub4' (global 4-component vector of uint) 0:119 move second child to first child (temp 4-component vector of uint) 0:119 'out_u4' (temp 4-component vector of uint) 0:119 AtomicMax (temp 4-component vector of uint) -0:119 'gs_ua4' (temp 4-component vector of uint) -0:119 'gs_ub4' (temp 4-component vector of uint) +0: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' (temp 4-component vector of uint) -0:120 'gs_ub4' (temp 4-component vector of uint) +0:120 'gs_ua4' (global 4-component vector of uint) +0:120 'gs_ub4' (global 4-component vector of uint) 0:121 move second child to first child (temp 4-component vector of uint) 0:121 'out_u4' (temp 4-component vector of uint) 0:121 AtomicMin (temp 4-component vector of uint) -0:121 'gs_ua4' (temp 4-component vector of uint) -0:121 'gs_ub4' (temp 4-component vector of uint) +0: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' (temp 4-component vector of uint) -0:122 'gs_ub4' (temp 4-component vector of uint) +0:122 'gs_ua4' (global 4-component vector of uint) +0:122 'gs_ub4' (global 4-component vector of uint) 0:123 move second child to first child (temp 4-component vector of uint) 0:123 'out_u4' (temp 4-component vector of uint) 0:123 AtomicOr (temp 4-component vector of uint) -0:123 'gs_ua4' (temp 4-component vector of uint) -0:123 'gs_ub4' (temp 4-component vector of uint) +0: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' (temp 4-component vector of uint) -0:124 'gs_ub4' (temp 4-component vector of uint) +0:124 'gs_ua4' (global 4-component vector of uint) +0:124 'gs_ub4' (global 4-component vector of uint) 0:125 move second child to first child (temp 4-component vector of uint) 0:125 'out_u4' (temp 4-component vector of uint) 0:125 AtomicXor (temp 4-component vector of uint) -0:125 'gs_ua4' (temp 4-component vector of uint) -0:125 'gs_ub4' (temp 4-component vector of uint) +0:125 'gs_ua4' (global 4-component vector of uint) +0:125 'gs_ub4' (global 4-component vector of uint) 0:128 Branch: Return with expression 0:? Constant: 0:? 1.000000 @@ -306,18 +306,18 @@ local_size = (1, 1, 1) 0:? 3.000000 0:? 4.000000 0:? Linker Objects -0:? 'gs_ua' (temp uint) -0:? 'gs_ub' (temp uint) -0:? 'gs_uc' (temp uint) -0:? 'gs_ua2' (temp 2-component vector of uint) -0:? 'gs_ub2' (temp 2-component vector of uint) -0:? 'gs_uc2' (temp 2-component vector of uint) -0:? 'gs_ua3' (temp 3-component vector of uint) -0:? 'gs_ub3' (temp 3-component vector of uint) -0:? 'gs_uc3' (temp 3-component vector of uint) -0:? 'gs_ua4' (temp 4-component vector of uint) -0:? 'gs_ub4' (temp 4-component vector of uint) -0:? 'gs_uc4' (temp 4-component vector of uint) +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) Linked compute stage: @@ -326,7 +326,7 @@ Linked compute stage: Shader version: 450 local_size = (1, 1, 1) 0:? Sequence -0:44 Function Definition: ComputeShaderFunction(f1;f1;f1;u1;u1; (temp float) +0:44 Function Definition: ComputeShaderFunctionS(f1;f1;f1;u1;u1; (global float) 0:17 Function Parameters: 0:17 'inF0' (in float) 0:17 'inF1' (in float) @@ -337,68 +337,68 @@ local_size = (1, 1, 1) 0:21 all (global bool) 0:21 'inF0' (in float) 0:24 AtomicAdd (global void) -0:24 'gs_ua' (temp uint) -0:24 'gs_ub' (temp uint) +0:24 'gs_ua' (global uint) +0:24 'gs_ub' (global uint) 0:25 move second child to first child (temp uint) 0:25 'out_u1' (temp uint) 0:25 AtomicAdd (temp uint) -0:25 'gs_ua' (temp uint) -0:25 'gs_ub' (temp uint) +0:25 'gs_ua' (global uint) +0:25 'gs_ub' (global uint) 0:26 AtomicAnd (global void) -0:26 'gs_ua' (temp uint) -0:26 'gs_ub' (temp uint) +0:26 'gs_ua' (global uint) +0:26 'gs_ub' (global uint) 0:27 move second child to first child (temp uint) 0:27 'out_u1' (temp uint) 0:27 AtomicAnd (temp uint) -0:27 'gs_ua' (temp uint) -0:27 'gs_ub' (temp uint) +0:27 'gs_ua' (global uint) +0:27 'gs_ub' (global uint) 0:28 move second child to first child (temp uint) 0:28 'out_u1' (temp uint) 0:28 AtomicCompSwap (temp uint) -0:28 'gs_ua' (temp uint) -0:28 'gs_ub' (temp uint) -0:28 'gs_uc' (temp uint) +0:28 'gs_ua' (global uint) +0:28 'gs_ub' (global uint) +0:28 'gs_uc' (global uint) 0:29 move second child to first child (temp uint) 0:29 'out_u1' (temp uint) 0:29 AtomicExchange (temp uint) -0:29 'gs_ua' (temp uint) -0:29 'gs_ub' (temp uint) +0:29 'gs_ua' (global uint) +0:29 'gs_ub' (global uint) 0:30 AtomicMax (global void) -0:30 'gs_ua' (temp uint) -0:30 'gs_ub' (temp uint) +0:30 'gs_ua' (global uint) +0:30 'gs_ub' (global uint) 0:31 move second child to first child (temp uint) 0:31 'out_u1' (temp uint) 0:31 AtomicMax (temp uint) -0:31 'gs_ua' (temp uint) -0:31 'gs_ub' (temp uint) +0:31 'gs_ua' (global uint) +0:31 'gs_ub' (global uint) 0:32 AtomicMin (global void) -0:32 'gs_ua' (temp uint) -0:32 'gs_ub' (temp uint) +0:32 'gs_ua' (global uint) +0:32 'gs_ub' (global uint) 0:33 move second child to first child (temp uint) 0:33 'out_u1' (temp uint) 0:33 AtomicMin (temp uint) -0:33 'gs_ua' (temp uint) -0:33 'gs_ub' (temp uint) +0:33 'gs_ua' (global uint) +0:33 'gs_ub' (global uint) 0:34 AtomicOr (global void) -0:34 'gs_ua' (temp uint) -0:34 'gs_ub' (temp uint) +0:34 'gs_ua' (global uint) +0:34 'gs_ub' (global uint) 0:35 move second child to first child (temp uint) 0:35 'out_u1' (temp uint) 0:35 AtomicOr (temp uint) -0:35 'gs_ua' (temp uint) -0:35 'gs_ub' (temp uint) +0:35 'gs_ua' (global uint) +0:35 'gs_ub' (global uint) 0:36 AtomicXor (global void) -0:36 'gs_ua' (temp uint) -0:36 'gs_ub' (temp uint) +0:36 'gs_ua' (global uint) +0:36 'gs_ub' (global uint) 0:37 move second child to first child (temp uint) 0:37 'out_u1' (temp uint) 0:37 AtomicXor (temp uint) -0:37 'gs_ua' (temp uint) -0:37 'gs_ub' (temp uint) +0:37 'gs_ua' (global uint) +0:37 'gs_ub' (global uint) 0:41 Branch: Return with expression 0:41 Constant: 0:41 0.000000 -0:50 Function Definition: ComputeShaderFunction(vf1;vf1;vf1; (temp 1-component vector of float) +0:50 Function Definition: ComputeShaderFunction1(vf1;vf1;vf1; (global 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) @@ -407,7 +407,7 @@ local_size = (1, 1, 1) 0:47 Branch: Return with expression 0:47 Constant: 0:47 0.000000 -0:77 Function Definition: ComputeShaderFunction(vf2;vf2;vf2;vu2;vu2; (temp 2-component vector of float) +0:77 Function Definition: ComputeShaderFunction2(vf2;vf2;vf2;vu2;vu2; (global 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) @@ -418,69 +418,69 @@ local_size = (1, 1, 1) 0:55 all (global bool) 0:55 'inF0' (in 2-component vector of float) 0:58 AtomicAdd (global void) -0:58 'gs_ua2' (temp 2-component vector of uint) -0:58 'gs_ub2' (temp 2-component vector of uint) +0:58 'gs_ua2' (global 2-component vector of uint) +0:58 'gs_ub2' (global 2-component vector of uint) 0:59 move second child to first child (temp 2-component vector of uint) 0:59 'out_u2' (temp 2-component vector of uint) 0:59 AtomicAdd (temp 2-component vector of uint) -0:59 'gs_ua2' (temp 2-component vector of uint) -0:59 'gs_ub2' (temp 2-component vector of uint) +0: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' (temp 2-component vector of uint) -0:60 'gs_ub2' (temp 2-component vector of uint) +0:60 'gs_ua2' (global 2-component vector of uint) +0:60 'gs_ub2' (global 2-component vector of uint) 0:61 move second child to first child (temp 2-component vector of uint) 0:61 'out_u2' (temp 2-component vector of uint) 0:61 AtomicAnd (temp 2-component vector of uint) -0:61 'gs_ua2' (temp 2-component vector of uint) -0:61 'gs_ub2' (temp 2-component vector of uint) +0:61 'gs_ua2' (global 2-component vector of uint) +0:61 'gs_ub2' (global 2-component vector of uint) 0:62 move second child to first child (temp 2-component vector of uint) 0:62 'out_u2' (temp 2-component vector of uint) 0:62 AtomicCompSwap (temp 2-component vector of uint) -0:62 'gs_ua2' (temp 2-component vector of uint) -0:62 'gs_ub2' (temp 2-component vector of uint) -0:62 'gs_uc2' (temp 2-component vector of uint) +0: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:63 move second child to first child (temp 2-component vector of uint) 0:63 'out_u2' (temp 2-component vector of uint) 0:63 AtomicExchange (temp 2-component vector of uint) -0:63 'gs_ua2' (temp 2-component vector of uint) -0:63 'gs_ub2' (temp 2-component vector of uint) +0: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' (temp 2-component vector of uint) -0:64 'gs_ub2' (temp 2-component vector of uint) +0:64 'gs_ua2' (global 2-component vector of uint) +0:64 'gs_ub2' (global 2-component vector of uint) 0:65 move second child to first child (temp 2-component vector of uint) 0:65 'out_u2' (temp 2-component vector of uint) 0:65 AtomicMax (temp 2-component vector of uint) -0:65 'gs_ua2' (temp 2-component vector of uint) -0:65 'gs_ub2' (temp 2-component vector of uint) +0: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' (temp 2-component vector of uint) -0:66 'gs_ub2' (temp 2-component vector of uint) +0:66 'gs_ua2' (global 2-component vector of uint) +0:66 'gs_ub2' (global 2-component vector of uint) 0:67 move second child to first child (temp 2-component vector of uint) 0:67 'out_u2' (temp 2-component vector of uint) 0:67 AtomicMin (temp 2-component vector of uint) -0:67 'gs_ua2' (temp 2-component vector of uint) -0:67 'gs_ub2' (temp 2-component vector of uint) +0: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' (temp 2-component vector of uint) -0:68 'gs_ub2' (temp 2-component vector of uint) +0:68 'gs_ua2' (global 2-component vector of uint) +0:68 'gs_ub2' (global 2-component vector of uint) 0:69 move second child to first child (temp 2-component vector of uint) 0:69 'out_u2' (temp 2-component vector of uint) 0:69 AtomicOr (temp 2-component vector of uint) -0:69 'gs_ua2' (temp 2-component vector of uint) -0:69 'gs_ub2' (temp 2-component vector of uint) +0: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' (temp 2-component vector of uint) -0:70 'gs_ub2' (temp 2-component vector of uint) +0:70 'gs_ua2' (global 2-component vector of uint) +0:70 'gs_ub2' (global 2-component vector of uint) 0:71 move second child to first child (temp 2-component vector of uint) 0:71 'out_u2' (temp 2-component vector of uint) 0:71 AtomicXor (temp 2-component vector of uint) -0:71 'gs_ua2' (temp 2-component vector of uint) -0:71 'gs_ub2' (temp 2-component vector of uint) +0:71 'gs_ua2' (global 2-component vector of uint) +0:71 'gs_ub2' (global 2-component vector of uint) 0:74 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 -0:104 Function Definition: ComputeShaderFunction(vf3;vf3;vf3;vu3;vu3; (temp 3-component vector of float) +0:104 Function Definition: ComputeShaderFunction3(vf3;vf3;vf3;vu3;vu3; (global 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) @@ -491,70 +491,70 @@ local_size = (1, 1, 1) 0:82 all (global bool) 0:82 'inF0' (in 3-component vector of float) 0:85 AtomicAdd (global void) -0:85 'gs_ua3' (temp 3-component vector of uint) -0:85 'gs_ub3' (temp 3-component vector of uint) +0:85 'gs_ua3' (global 3-component vector of uint) +0:85 'gs_ub3' (global 3-component vector of uint) 0:86 move second child to first child (temp 3-component vector of uint) 0:86 'out_u3' (temp 3-component vector of uint) 0:86 AtomicAdd (temp 3-component vector of uint) -0:86 'gs_ua3' (temp 3-component vector of uint) -0:86 'gs_ub3' (temp 3-component vector of uint) +0: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' (temp 3-component vector of uint) -0:87 'gs_ub3' (temp 3-component vector of uint) +0:87 'gs_ua3' (global 3-component vector of uint) +0:87 'gs_ub3' (global 3-component vector of uint) 0:88 move second child to first child (temp 3-component vector of uint) 0:88 'out_u3' (temp 3-component vector of uint) 0:88 AtomicAnd (temp 3-component vector of uint) -0:88 'gs_ua3' (temp 3-component vector of uint) -0:88 'gs_ub3' (temp 3-component vector of uint) +0:88 'gs_ua3' (global 3-component vector of uint) +0:88 'gs_ub3' (global 3-component vector of uint) 0:89 move second child to first child (temp 3-component vector of uint) 0:89 'out_u3' (temp 3-component vector of uint) 0:89 AtomicCompSwap (temp 3-component vector of uint) -0:89 'gs_ua3' (temp 3-component vector of uint) -0:89 'gs_ub3' (temp 3-component vector of uint) -0:89 'gs_uc3' (temp 3-component vector of uint) +0: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:90 move second child to first child (temp 3-component vector of uint) 0:90 'out_u3' (temp 3-component vector of uint) 0:90 AtomicExchange (temp 3-component vector of uint) -0:90 'gs_ua3' (temp 3-component vector of uint) -0:90 'gs_ub3' (temp 3-component vector of uint) +0: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' (temp 3-component vector of uint) -0:91 'gs_ub3' (temp 3-component vector of uint) +0:91 'gs_ua3' (global 3-component vector of uint) +0:91 'gs_ub3' (global 3-component vector of uint) 0:92 move second child to first child (temp 3-component vector of uint) 0:92 'out_u3' (temp 3-component vector of uint) 0:92 AtomicMax (temp 3-component vector of uint) -0:92 'gs_ua3' (temp 3-component vector of uint) -0:92 'gs_ub3' (temp 3-component vector of uint) +0: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' (temp 3-component vector of uint) -0:93 'gs_ub3' (temp 3-component vector of uint) +0:93 'gs_ua3' (global 3-component vector of uint) +0:93 'gs_ub3' (global 3-component vector of uint) 0:94 move second child to first child (temp 3-component vector of uint) 0:94 'out_u3' (temp 3-component vector of uint) 0:94 AtomicMin (temp 3-component vector of uint) -0:94 'gs_ua3' (temp 3-component vector of uint) -0:94 'gs_ub3' (temp 3-component vector of uint) +0: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' (temp 3-component vector of uint) -0:95 'gs_ub3' (temp 3-component vector of uint) +0:95 'gs_ua3' (global 3-component vector of uint) +0:95 'gs_ub3' (global 3-component vector of uint) 0:96 move second child to first child (temp 3-component vector of uint) 0:96 'out_u3' (temp 3-component vector of uint) 0:96 AtomicOr (temp 3-component vector of uint) -0:96 'gs_ua3' (temp 3-component vector of uint) -0:96 'gs_ub3' (temp 3-component vector of uint) +0: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' (temp 3-component vector of uint) -0:97 'gs_ub3' (temp 3-component vector of uint) +0:97 'gs_ua3' (global 3-component vector of uint) +0:97 'gs_ub3' (global 3-component vector of uint) 0:98 move second child to first child (temp 3-component vector of uint) 0:98 'out_u3' (temp 3-component vector of uint) 0:98 AtomicXor (temp 3-component vector of uint) -0:98 'gs_ua3' (temp 3-component vector of uint) -0:98 'gs_ub3' (temp 3-component vector of uint) +0:98 'gs_ua3' (global 3-component vector of uint) +0:98 'gs_ub3' (global 3-component vector of uint) 0:101 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 -0:130 Function Definition: ComputeShaderFunction(vf4;vf4;vf4;vu4;vu4; (temp 4-component vector of float) +0:130 Function Definition: ComputeShaderFunction(vf4;vf4;vf4;vu4;vu4; (global 4-component vector of float) 0:105 Function Parameters: 0:105 'inF0' (in 4-component vector of float) 0:105 'inF1' (in 4-component vector of float) @@ -565,64 +565,64 @@ local_size = (1, 1, 1) 0:109 all (global bool) 0:109 'inF0' (in 4-component vector of float) 0:112 AtomicAdd (global void) -0:112 'gs_ua4' (temp 4-component vector of uint) -0:112 'gs_ub4' (temp 4-component vector of uint) +0:112 'gs_ua4' (global 4-component vector of uint) +0:112 'gs_ub4' (global 4-component vector of uint) 0:113 move second child to first child (temp 4-component vector of uint) 0:113 'out_u4' (temp 4-component vector of uint) 0:113 AtomicAdd (temp 4-component vector of uint) -0:113 'gs_ua4' (temp 4-component vector of uint) -0:113 'gs_ub4' (temp 4-component vector of uint) +0: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' (temp 4-component vector of uint) -0:114 'gs_ub4' (temp 4-component vector of uint) +0:114 'gs_ua4' (global 4-component vector of uint) +0:114 'gs_ub4' (global 4-component vector of uint) 0:115 move second child to first child (temp 4-component vector of uint) 0:115 'out_u4' (temp 4-component vector of uint) 0:115 AtomicAnd (temp 4-component vector of uint) -0:115 'gs_ua4' (temp 4-component vector of uint) -0:115 'gs_ub4' (temp 4-component vector of uint) +0:115 'gs_ua4' (global 4-component vector of uint) +0:115 'gs_ub4' (global 4-component vector of uint) 0:116 move second child to first child (temp 4-component vector of uint) 0:116 'out_u4' (temp 4-component vector of uint) 0:116 AtomicCompSwap (temp 4-component vector of uint) -0:116 'gs_ua4' (temp 4-component vector of uint) -0:116 'gs_ub4' (temp 4-component vector of uint) -0:116 'gs_uc4' (temp 4-component vector of uint) +0: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:117 move second child to first child (temp 4-component vector of uint) 0:117 'out_u4' (temp 4-component vector of uint) 0:117 AtomicExchange (temp 4-component vector of uint) -0:117 'gs_ua4' (temp 4-component vector of uint) -0:117 'gs_ub4' (temp 4-component vector of uint) +0: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' (temp 4-component vector of uint) -0:118 'gs_ub4' (temp 4-component vector of uint) +0:118 'gs_ua4' (global 4-component vector of uint) +0:118 'gs_ub4' (global 4-component vector of uint) 0:119 move second child to first child (temp 4-component vector of uint) 0:119 'out_u4' (temp 4-component vector of uint) 0:119 AtomicMax (temp 4-component vector of uint) -0:119 'gs_ua4' (temp 4-component vector of uint) -0:119 'gs_ub4' (temp 4-component vector of uint) +0: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' (temp 4-component vector of uint) -0:120 'gs_ub4' (temp 4-component vector of uint) +0:120 'gs_ua4' (global 4-component vector of uint) +0:120 'gs_ub4' (global 4-component vector of uint) 0:121 move second child to first child (temp 4-component vector of uint) 0:121 'out_u4' (temp 4-component vector of uint) 0:121 AtomicMin (temp 4-component vector of uint) -0:121 'gs_ua4' (temp 4-component vector of uint) -0:121 'gs_ub4' (temp 4-component vector of uint) +0: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' (temp 4-component vector of uint) -0:122 'gs_ub4' (temp 4-component vector of uint) +0:122 'gs_ua4' (global 4-component vector of uint) +0:122 'gs_ub4' (global 4-component vector of uint) 0:123 move second child to first child (temp 4-component vector of uint) 0:123 'out_u4' (temp 4-component vector of uint) 0:123 AtomicOr (temp 4-component vector of uint) -0:123 'gs_ua4' (temp 4-component vector of uint) -0:123 'gs_ub4' (temp 4-component vector of uint) +0: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' (temp 4-component vector of uint) -0:124 'gs_ub4' (temp 4-component vector of uint) +0:124 'gs_ua4' (global 4-component vector of uint) +0:124 'gs_ub4' (global 4-component vector of uint) 0:125 move second child to first child (temp 4-component vector of uint) 0:125 'out_u4' (temp 4-component vector of uint) 0:125 AtomicXor (temp 4-component vector of uint) -0:125 'gs_ua4' (temp 4-component vector of uint) -0:125 'gs_ub4' (temp 4-component vector of uint) +0:125 'gs_ua4' (global 4-component vector of uint) +0:125 'gs_ub4' (global 4-component vector of uint) 0:128 Branch: Return with expression 0:? Constant: 0:? 1.000000 @@ -630,139 +630,314 @@ local_size = (1, 1, 1) 0:? 3.000000 0:? 4.000000 0:? Linker Objects -0:? 'gs_ua' (temp uint) -0:? 'gs_ub' (temp uint) -0:? 'gs_uc' (temp uint) -0:? 'gs_ua2' (temp 2-component vector of uint) -0:? 'gs_ub2' (temp 2-component vector of uint) -0:? 'gs_uc2' (temp 2-component vector of uint) -0:? 'gs_ua3' (temp 3-component vector of uint) -0:? 'gs_ub3' (temp 3-component vector of uint) -0:? 'gs_uc3' (temp 3-component vector of uint) -0:? 'gs_ua4' (temp 4-component vector of uint) -0:? 'gs_ub4' (temp 4-component vector of uint) -0:? 'gs_uc4' (temp 4-component vector of uint) +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) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 182 +// Id's are bound by 217 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint GLCompute 4 "ComputeShaderFunction" 8 54 98 141 + EntryPoint GLCompute 4 "ComputeShaderFunction" 175 ExecutionMode 4 LocalSize 1 1 1 Source HLSL 450 Name 4 "ComputeShaderFunction" - Name 8 "inF0" - Name 14 "gs_ua" - Name 15 "gs_ub" - Name 20 "out_u1" - Name 28 "gs_uc" - Name 54 "inF0" - Name 59 "gs_ua2" - Name 60 "gs_ub2" - Name 63 "out_u2" - Name 71 "gs_uc2" - Name 98 "inF0" - Name 103 "gs_ua3" - Name 104 "gs_ub3" - Name 107 "out_u3" - Name 115 "gs_uc3" - Name 141 "inF0" - Name 146 "gs_ua4" - Name 147 "gs_ub4" - Name 150 "out_u4" - Name 158 "gs_uc4" + Name 16 "ComputeShaderFunctionS(f1;f1;f1;u1;u1;" + Name 11 "inF0" + Name 12 "inF1" + Name 13 "inF2" + Name 14 "inU0" + Name 15 "inU1" + Name 22 "ComputeShaderFunction1(vf1;vf1;vf1;" + Name 19 "inF0" + Name 20 "inF1" + Name 21 "inF2" + Name 34 "ComputeShaderFunction2(vf2;vf2;vf2;vu2;vu2;" + Name 29 "inF0" + Name 30 "inF1" + Name 31 "inF2" + Name 32 "inU0" + Name 33 "inU1" + Name 46 "ComputeShaderFunction3(vf3;vf3;vf3;vu3;vu3;" + Name 41 "inF0" + Name 42 "inF1" + Name 43 "inF2" + Name 44 "inU0" + Name 45 "inU1" + Name 52 "gs_ua" + Name 53 "gs_ub" + Name 58 "out_u1" + Name 66 "gs_uc" + Name 95 "gs_ua2" + Name 96 "gs_ub2" + Name 99 "out_u2" + Name 107 "gs_uc2" + Name 136 "gs_ua3" + Name 137 "gs_ub3" + Name 140 "out_u3" + Name 148 "gs_uc3" + Name 175 "inF0" + Name 180 "gs_ua4" + Name 181 "gs_ub4" + Name 185 "out_u4" + Name 193 "gs_uc4" 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 - 7: TypePointer Input 6(float) - 8(inF0): 7(ptr) Variable Input - 10: TypeBool - 12: TypeInt 32 0 - 13: TypePointer Function 12(int) - 17: 12(int) Constant 1 - 18: 12(int) Constant 0 - 49: 6(float) Constant 0 - 52: TypeVector 6(float) 2 - 53: TypePointer Input 52(fvec2) - 54(inF0): 53(ptr) Variable Input - 57: TypeVector 12(int) 2 - 58: TypePointer Function 57(ivec2) - 92: 6(float) Constant 1065353216 - 93: 6(float) Constant 1073741824 - 94: 52(fvec2) ConstantComposite 92 93 - 96: TypeVector 6(float) 3 - 97: TypePointer Input 96(fvec3) - 98(inF0): 97(ptr) Variable Input - 101: TypeVector 12(int) 3 - 102: TypePointer Function 101(ivec3) - 136: 6(float) Constant 1077936128 - 137: 96(fvec3) ConstantComposite 92 93 136 - 139: TypeVector 6(float) 4 - 140: TypePointer Input 139(fvec4) - 141(inF0): 140(ptr) Variable Input - 144: TypeVector 12(int) 4 - 145: TypePointer Function 144(ivec4) - 179: 6(float) Constant 1082130432 - 180: 139(fvec4) ConstantComposite 92 93 136 179 + 7: TypePointer Function 6(float) + 8: TypeInt 32 0 + 9: TypePointer Function 8(int) + 10: TypeFunction 6(float) 7(ptr) 7(ptr) 7(ptr) 9(ptr) 9(ptr) + 18: TypeFunction 6(float) 7(ptr) 7(ptr) 7(ptr) + 24: TypeVector 6(float) 2 + 25: TypePointer Function 24(fvec2) + 26: TypeVector 8(int) 2 + 27: TypePointer Function 26(ivec2) + 28: TypeFunction 24(fvec2) 25(ptr) 25(ptr) 25(ptr) 27(ptr) 27(ptr) + 36: TypeVector 6(float) 3 + 37: TypePointer Function 36(fvec3) + 38: TypeVector 8(int) 3 + 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 + 55: 8(int) Constant 1 + 56: 8(int) Constant 0 + 66(gs_uc): 51(ptr) Variable Private + 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 + 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 + 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 + 184: TypePointer Function 178(ivec4) + 193(gs_uc4): 179(ptr) Variable Private + 214: 6(float) Constant 1082130432 + 215: 173(fvec4) ConstantComposite 128 129 169 214 4(ComputeShaderFunction): 2 Function None 3 5: Label - 14(gs_ua): 13(ptr) Variable Function - 15(gs_ub): 13(ptr) Variable Function - 20(out_u1): 13(ptr) Variable Function - 28(gs_uc): 13(ptr) Variable Function - 59(gs_ua2): 58(ptr) Variable Function - 60(gs_ub2): 58(ptr) Variable Function - 63(out_u2): 58(ptr) Variable Function - 71(gs_uc2): 58(ptr) Variable Function - 103(gs_ua3): 102(ptr) Variable Function - 104(gs_ub3): 102(ptr) Variable Function - 107(out_u3): 102(ptr) Variable Function - 115(gs_uc3): 102(ptr) Variable Function - 146(gs_ua4): 145(ptr) Variable Function - 147(gs_ub4): 145(ptr) Variable Function - 150(out_u4): 145(ptr) Variable Function - 158(gs_uc4): 145(ptr) Variable Function - 9: 6(float) Load 8(inF0) - 11: 10(bool) All 9 - 16: 12(int) Load 15(gs_ub) - 19: 2 AtomicIAdd 14(gs_ua) 17 18 16 - 21: 12(int) Load 15(gs_ub) - 22: 12(int) AtomicIAdd 14(gs_ua) 17 18 21 - Store 20(out_u1) 22 - 23: 12(int) Load 15(gs_ub) - 24: 2 AtomicAnd 14(gs_ua) 17 18 23 - 25: 12(int) Load 15(gs_ub) - 26: 12(int) AtomicAnd 14(gs_ua) 17 18 25 - Store 20(out_u1) 26 - 27: 12(int) Load 15(gs_ub) - 29: 12(int) Load 28(gs_uc) - 30: 12(int) AtomicCompareExchange 14(gs_ua) 17 18 18 29 27 - Store 20(out_u1) 30 - 31: 12(int) Load 15(gs_ub) - 32: 12(int) AtomicExchange 14(gs_ua) 17 18 31 - Store 20(out_u1) 32 - 33: 12(int) Load 15(gs_ub) - 34: 2 AtomicSMax 14(gs_ua) 17 18 33 - 35: 12(int) Load 15(gs_ub) - 36: 12(int) AtomicUMax 14(gs_ua) 17 18 35 - Store 20(out_u1) 36 - 37: 12(int) Load 15(gs_ub) - 38: 2 AtomicSMin 14(gs_ua) 17 18 37 - 39: 12(int) Load 15(gs_ub) - 40: 12(int) AtomicUMin 14(gs_ua) 17 18 39 - Store 20(out_u1) 40 - 41: 12(int) Load 15(gs_ub) - 42: 2 AtomicOr 14(gs_ua) 17 18 41 - 43: 12(int) Load 15(gs_ub) - 44: 12(int) AtomicOr 14(gs_ua) 17 18 43 - Store 20(out_u1) 44 - 45: 12(int) Load 15(gs_ub) - 46: 2 AtomicXor 14(gs_ua) 17 18 45 - 47: 12(int) Load 15(gs_ub) - 48: 12(int) AtomicXor 14(gs_ua) 17 18 47 - Store 20(out_u1) 48 - ReturnValue 49 + 185(out_u4): 184(ptr) Variable Function + 176: 173(fvec4) Load 175(inF0) + 177: 49(bool) All 176 + 182: 178(ivec4) Load 181(gs_ub4) + 183: 2 AtomicIAdd 180(gs_ua4) 55 56 182 + 186: 178(ivec4) Load 181(gs_ub4) + 187: 178(ivec4) AtomicIAdd 180(gs_ua4) 55 56 186 + Store 185(out_u4) 187 + 188: 178(ivec4) Load 181(gs_ub4) + 189: 2 AtomicAnd 180(gs_ua4) 55 56 188 + 190: 178(ivec4) Load 181(gs_ub4) + 191: 178(ivec4) AtomicAnd 180(gs_ua4) 55 56 190 + Store 185(out_u4) 191 + 192: 178(ivec4) Load 181(gs_ub4) + 194: 178(ivec4) Load 193(gs_uc4) + 195: 178(ivec4) AtomicCompareExchange 180(gs_ua4) 55 56 56 194 192 + Store 185(out_u4) 195 + 196: 178(ivec4) Load 181(gs_ub4) + 197: 178(ivec4) AtomicExchange 180(gs_ua4) 55 56 196 + Store 185(out_u4) 197 + 198: 178(ivec4) Load 181(gs_ub4) + 199: 2 AtomicSMax 180(gs_ua4) 55 56 198 + 200: 178(ivec4) Load 181(gs_ub4) + 201: 178(ivec4) AtomicUMax 180(gs_ua4) 55 56 200 + Store 185(out_u4) 201 + 202: 178(ivec4) Load 181(gs_ub4) + 203: 2 AtomicSMin 180(gs_ua4) 55 56 202 + 204: 178(ivec4) Load 181(gs_ub4) + 205: 178(ivec4) AtomicUMin 180(gs_ua4) 55 56 204 + Store 185(out_u4) 205 + 206: 178(ivec4) Load 181(gs_ub4) + 207: 2 AtomicOr 180(gs_ua4) 55 56 206 + 208: 178(ivec4) Load 181(gs_ub4) + 209: 178(ivec4) AtomicOr 180(gs_ua4) 55 56 208 + Store 185(out_u4) 209 + 210: 178(ivec4) Load 181(gs_ub4) + 211: 2 AtomicXor 180(gs_ua4) 55 56 210 + 212: 178(ivec4) Load 181(gs_ub4) + 213: 178(ivec4) AtomicXor 180(gs_ua4) 55 56 212 + Store 185(out_u4) 213 + ReturnValue 215 + FunctionEnd +16(ComputeShaderFunctionS(f1;f1;f1;u1;u1;): 6(float) Function None 10 + 11(inF0): 7(ptr) FunctionParameter + 12(inF1): 7(ptr) FunctionParameter + 13(inF2): 7(ptr) FunctionParameter + 14(inU0): 9(ptr) FunctionParameter + 15(inU1): 9(ptr) FunctionParameter + 17: Label + 58(out_u1): 9(ptr) Variable Function + 48: 6(float) Load 11(inF0) + 50: 49(bool) All 48 + 54: 8(int) Load 53(gs_ub) + 57: 2 AtomicIAdd 52(gs_ua) 55 56 54 + 59: 8(int) Load 53(gs_ub) + 60: 8(int) AtomicIAdd 52(gs_ua) 55 56 59 + Store 58(out_u1) 60 + 61: 8(int) Load 53(gs_ub) + 62: 2 AtomicAnd 52(gs_ua) 55 56 61 + 63: 8(int) Load 53(gs_ub) + 64: 8(int) AtomicAnd 52(gs_ua) 55 56 63 + Store 58(out_u1) 64 + 65: 8(int) Load 53(gs_ub) + 67: 8(int) Load 66(gs_uc) + 68: 8(int) AtomicCompareExchange 52(gs_ua) 55 56 56 67 65 + Store 58(out_u1) 68 + 69: 8(int) Load 53(gs_ub) + 70: 8(int) AtomicExchange 52(gs_ua) 55 56 69 + Store 58(out_u1) 70 + 71: 8(int) Load 53(gs_ub) + 72: 2 AtomicSMax 52(gs_ua) 55 56 71 + 73: 8(int) Load 53(gs_ub) + 74: 8(int) AtomicUMax 52(gs_ua) 55 56 73 + Store 58(out_u1) 74 + 75: 8(int) Load 53(gs_ub) + 76: 2 AtomicSMin 52(gs_ua) 55 56 75 + 77: 8(int) Load 53(gs_ub) + 78: 8(int) AtomicUMin 52(gs_ua) 55 56 77 + Store 58(out_u1) 78 + 79: 8(int) Load 53(gs_ub) + 80: 2 AtomicOr 52(gs_ua) 55 56 79 + 81: 8(int) Load 53(gs_ub) + 82: 8(int) AtomicOr 52(gs_ua) 55 56 81 + Store 58(out_u1) 82 + 83: 8(int) Load 53(gs_ub) + 84: 2 AtomicXor 52(gs_ua) 55 56 83 + 85: 8(int) Load 53(gs_ub) + 86: 8(int) AtomicXor 52(gs_ua) 55 56 85 + Store 58(out_u1) 86 + ReturnValue 87 + FunctionEnd +22(ComputeShaderFunction1(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 87 + FunctionEnd +34(ComputeShaderFunction2(vf2;vf2;vf2;vu2;vu2;): 24(fvec2) Function None 28 + 29(inF0): 25(ptr) FunctionParameter + 30(inF1): 25(ptr) FunctionParameter + 31(inF2): 25(ptr) FunctionParameter + 32(inU0): 27(ptr) FunctionParameter + 33(inU1): 27(ptr) FunctionParameter + 35: Label + 99(out_u2): 27(ptr) Variable Function + 92: 24(fvec2) Load 29(inF0) + 93: 49(bool) All 92 + 97: 26(ivec2) Load 96(gs_ub2) + 98: 2 AtomicIAdd 95(gs_ua2) 55 56 97 + 100: 26(ivec2) Load 96(gs_ub2) + 101: 26(ivec2) AtomicIAdd 95(gs_ua2) 55 56 100 + Store 99(out_u2) 101 + 102: 26(ivec2) Load 96(gs_ub2) + 103: 2 AtomicAnd 95(gs_ua2) 55 56 102 + 104: 26(ivec2) Load 96(gs_ub2) + 105: 26(ivec2) AtomicAnd 95(gs_ua2) 55 56 104 + Store 99(out_u2) 105 + 106: 26(ivec2) Load 96(gs_ub2) + 108: 26(ivec2) Load 107(gs_uc2) + 109: 26(ivec2) AtomicCompareExchange 95(gs_ua2) 55 56 56 108 106 + Store 99(out_u2) 109 + 110: 26(ivec2) Load 96(gs_ub2) + 111: 26(ivec2) AtomicExchange 95(gs_ua2) 55 56 110 + Store 99(out_u2) 111 + 112: 26(ivec2) Load 96(gs_ub2) + 113: 2 AtomicSMax 95(gs_ua2) 55 56 112 + 114: 26(ivec2) Load 96(gs_ub2) + 115: 26(ivec2) AtomicUMax 95(gs_ua2) 55 56 114 + Store 99(out_u2) 115 + 116: 26(ivec2) Load 96(gs_ub2) + 117: 2 AtomicSMin 95(gs_ua2) 55 56 116 + 118: 26(ivec2) Load 96(gs_ub2) + 119: 26(ivec2) AtomicUMin 95(gs_ua2) 55 56 118 + Store 99(out_u2) 119 + 120: 26(ivec2) Load 96(gs_ub2) + 121: 2 AtomicOr 95(gs_ua2) 55 56 120 + 122: 26(ivec2) Load 96(gs_ub2) + 123: 26(ivec2) AtomicOr 95(gs_ua2) 55 56 122 + Store 99(out_u2) 123 + 124: 26(ivec2) Load 96(gs_ub2) + 125: 2 AtomicXor 95(gs_ua2) 55 56 124 + 126: 26(ivec2) Load 96(gs_ub2) + 127: 26(ivec2) AtomicXor 95(gs_ua2) 55 56 126 + Store 99(out_u2) 127 + ReturnValue 130 + FunctionEnd +46(ComputeShaderFunction3(vf3;vf3;vf3;vu3;vu3;): 36(fvec3) Function None 40 + 41(inF0): 37(ptr) FunctionParameter + 42(inF1): 37(ptr) FunctionParameter + 43(inF2): 37(ptr) FunctionParameter + 44(inU0): 39(ptr) FunctionParameter + 45(inU1): 39(ptr) FunctionParameter + 47: Label + 140(out_u3): 39(ptr) Variable Function + 133: 36(fvec3) Load 41(inF0) + 134: 49(bool) All 133 + 138: 38(ivec3) Load 137(gs_ub3) + 139: 2 AtomicIAdd 136(gs_ua3) 55 56 138 + 141: 38(ivec3) Load 137(gs_ub3) + 142: 38(ivec3) AtomicIAdd 136(gs_ua3) 55 56 141 + Store 140(out_u3) 142 + 143: 38(ivec3) Load 137(gs_ub3) + 144: 2 AtomicAnd 136(gs_ua3) 55 56 143 + 145: 38(ivec3) Load 137(gs_ub3) + 146: 38(ivec3) AtomicAnd 136(gs_ua3) 55 56 145 + Store 140(out_u3) 146 + 147: 38(ivec3) Load 137(gs_ub3) + 149: 38(ivec3) Load 148(gs_uc3) + 150: 38(ivec3) AtomicCompareExchange 136(gs_ua3) 55 56 56 149 147 + Store 140(out_u3) 150 + 151: 38(ivec3) Load 137(gs_ub3) + 152: 38(ivec3) AtomicExchange 136(gs_ua3) 55 56 151 + Store 140(out_u3) 152 + 153: 38(ivec3) Load 137(gs_ub3) + 154: 2 AtomicSMax 136(gs_ua3) 55 56 153 + 155: 38(ivec3) Load 137(gs_ub3) + 156: 38(ivec3) AtomicUMax 136(gs_ua3) 55 56 155 + Store 140(out_u3) 156 + 157: 38(ivec3) Load 137(gs_ub3) + 158: 2 AtomicSMin 136(gs_ua3) 55 56 157 + 159: 38(ivec3) Load 137(gs_ub3) + 160: 38(ivec3) AtomicUMin 136(gs_ua3) 55 56 159 + Store 140(out_u3) 160 + 161: 38(ivec3) Load 137(gs_ub3) + 162: 2 AtomicOr 136(gs_ua3) 55 56 161 + 163: 38(ivec3) Load 137(gs_ub3) + 164: 38(ivec3) AtomicOr 136(gs_ua3) 55 56 163 + Store 140(out_u3) 164 + 165: 38(ivec3) Load 137(gs_ub3) + 166: 2 AtomicXor 136(gs_ua3) 55 56 165 + 167: 38(ivec3) Load 137(gs_ub3) + 168: 38(ivec3) AtomicXor 136(gs_ua3) 55 56 167 + Store 140(out_u3) 168 + ReturnValue 170 FunctionEnd diff --git a/Test/baseResults/hlsl.intrinsics.double.frag.out b/Test/baseResults/hlsl.intrinsics.double.frag.out new file mode 100644 index 00000000..8bfc072f --- /dev/null +++ b/Test/baseResults/hlsl.intrinsics.double.frag.out @@ -0,0 +1,121 @@ +hlsl.intrinsics.double.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:12 Function Definition: PixelShaderFunction(d1;d1;d1;vd2;vd3;vd4;u1;u1; (global float) +0:5 Function Parameters: +0:5 'inDV1a' (in double) +0:5 'inDV1b' (in double) +0:5 'inDV1c' (in double) +0:5 'inDV2' (in 2-component vector of double) +0:5 'inDV3' (in 3-component vector of double) +0:5 'inDV4' (in 4-component vector of double) +0:5 'inU1a' (in uint) +0:5 'inU1b' (in uint) +0:? Sequence +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 'inDV1a' (in double) +0:6 'inDV1b' (in double) +0:6 'inDV1c' (in double) +0:7 Sequence +0:7 move second child to first child (temp double) +0:7 'r01' (temp double) +0:7 uint64BitsToDouble (temp double) +0:7 Construct uvec2 (temp 2-component vector of uint) +0:7 'inU1a' (in uint) +0:7 'inU1b' (in uint) +0:9 Branch: Return with expression +0:9 Constant: +0:9 0.000000 +0:? Linker Objects + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:12 Function Definition: PixelShaderFunction(d1;d1;d1;vd2;vd3;vd4;u1;u1; (global float) +0:5 Function Parameters: +0:5 'inDV1a' (in double) +0:5 'inDV1b' (in double) +0:5 'inDV1c' (in double) +0:5 'inDV2' (in 2-component vector of double) +0:5 'inDV3' (in 3-component vector of double) +0:5 'inDV4' (in 4-component vector of double) +0:5 'inU1a' (in uint) +0:5 'inU1b' (in uint) +0:? Sequence +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 'inDV1a' (in double) +0:6 'inDV1b' (in double) +0:6 'inDV1c' (in double) +0:7 Sequence +0:7 move second child to first child (temp double) +0:7 'r01' (temp double) +0:7 uint64BitsToDouble (temp double) +0:7 Construct uvec2 (temp 2-component vector of uint) +0:7 'inU1a' (in uint) +0:7 'inU1b' (in uint) +0:9 Branch: Return with expression +0:9 Constant: +0:9 0.000000 +0:? Linker Objects + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 30 + + Capability Shader + Capability Float64 + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "PixelShaderFunction" 10 12 14 20 22 + ExecutionMode 4 OriginUpperLeft + Source HLSL 450 + Name 4 "PixelShaderFunction" + Name 8 "r00" + Name 10 "inDV1a" + Name 12 "inDV1b" + Name 14 "inDV1c" + Name 17 "r01" + Name 20 "inU1a" + Name 22 "inU1b" + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 64 + 7: TypePointer Function 6(float) + 9: TypePointer Input 6(float) + 10(inDV1a): 9(ptr) Variable Input + 12(inDV1b): 9(ptr) Variable Input + 14(inDV1c): 9(ptr) Variable Input + 18: TypeInt 32 0 + 19: TypePointer Input 18(int) + 20(inU1a): 19(ptr) Variable Input + 22(inU1b): 19(ptr) Variable Input + 24: TypeVector 18(int) 2 + 27: TypeFloat 32 + 28: 27(float) Constant 0 +4(PixelShaderFunction): 2 Function None 3 + 5: Label + 8(r00): 7(ptr) Variable Function + 17(r01): 7(ptr) Variable Function + 11: 6(float) Load 10(inDV1a) + 13: 6(float) Load 12(inDV1b) + 15: 6(float) Load 14(inDV1c) + 16: 6(float) ExtInst 1(GLSL.std.450) 50(Fma) 11 13 15 + Store 8(r00) 16 + 21: 18(int) Load 20(inU1a) + 23: 18(int) Load 22(inU1b) + 25: 24(ivec2) CompositeConstruct 21 23 + 26: 6(float) Bitcast 25 + Store 17(r01) 26 + ReturnValue 28 + FunctionEnd diff --git a/Test/baseResults/hlsl.intrinsics.evalfns.frag.out b/Test/baseResults/hlsl.intrinsics.evalfns.frag.out index 1c22b25a..f1b64114 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:11 Function Definition: main(f1;vf2;vf3;vf4;vi2; (temp void) +0:11 Function Definition: main(f1;vf2;vf3;vf4;vi2; (global void) 0:3 Function Parameters: 0:3 'inF1' (in float) 0:3 'inF2' (in 2-component vector of float) @@ -52,7 +52,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:11 Function Definition: main(f1;vf2;vf3;vf4;vi2; (temp void) +0:11 Function Definition: main(f1;vf2;vf3;vf4;vi2; (global void) 0:3 Function Parameters: 0:3 'inF1' (in float) 0:3 'inF2' (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 a4930ec9..7340531b 100644 --- a/Test/baseResults/hlsl.intrinsics.f1632.frag.out +++ b/Test/baseResults/hlsl.intrinsics.f1632.frag.out @@ -9,7 +9,7 @@ ERROR: 4 compilation errors. No code generated. Shader version: 450 gl_FragCoord origin is upper left ERROR: node is still EOpNull! -0:8 Function Definition: PixelShaderFunction(f1; (temp float) +0:8 Function Definition: PixelShaderFunctionS(f1; (global float) 0:2 Function Parameters: 0:2 'inF0' (in float) 0:? Sequence @@ -19,14 +19,14 @@ ERROR: node is still EOpNull! 0:5 Branch: Return with expression 0:5 Constant: 0:5 0.000000 -0:14 Function Definition: PixelShaderFunction(vf1; (temp 1-component vector of float) +0:14 Function Definition: PixelShaderFunction1(vf1; (global 1-component vector of float) 0:9 Function Parameters: 0:9 'inF0' (in 1-component vector of float) 0:? Sequence 0:11 Branch: Return with expression 0:11 Constant: 0:11 0.000000 -0:21 Function Definition: PixelShaderFunction(vf2; (temp 2-component vector of float) +0:21 Function Definition: PixelShaderFunction2(vf2; (global 2-component vector of float) 0:15 Function Parameters: 0:15 'inF0' (in 2-component vector of float) 0:? Sequence @@ -37,7 +37,7 @@ ERROR: node is still EOpNull! 0:? Constant: 0:? 1.000000 0:? 2.000000 -0:28 Function Definition: PixelShaderFunction(vf3; (temp 3-component vector of float) +0:28 Function Definition: PixelShaderFunction3(vf3; (global 3-component vector of float) 0:22 Function Parameters: 0:22 'inF0' (in 3-component vector of float) 0:? Sequence @@ -49,7 +49,7 @@ ERROR: node is still EOpNull! 0:? 1.000000 0:? 2.000000 0:? 3.000000 -0:35 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) +0:35 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) 0:29 Function Parameters: 0:29 'inF0' (in 4-component vector of float) 0:? Sequence @@ -71,7 +71,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left ERROR: node is still EOpNull! -0:8 Function Definition: PixelShaderFunction(f1; (temp float) +0:8 Function Definition: PixelShaderFunctionS(f1; (global float) 0:2 Function Parameters: 0:2 'inF0' (in float) 0:? Sequence @@ -81,14 +81,14 @@ ERROR: node is still EOpNull! 0:5 Branch: Return with expression 0:5 Constant: 0:5 0.000000 -0:14 Function Definition: PixelShaderFunction(vf1; (temp 1-component vector of float) +0:14 Function Definition: PixelShaderFunction1(vf1; (global 1-component vector of float) 0:9 Function Parameters: 0:9 'inF0' (in 1-component vector of float) 0:? Sequence 0:11 Branch: Return with expression 0:11 Constant: 0:11 0.000000 -0:21 Function Definition: PixelShaderFunction(vf2; (temp 2-component vector of float) +0:21 Function Definition: PixelShaderFunction2(vf2; (global 2-component vector of float) 0:15 Function Parameters: 0:15 'inF0' (in 2-component vector of float) 0:? Sequence @@ -99,7 +99,7 @@ ERROR: node is still EOpNull! 0:? Constant: 0:? 1.000000 0:? 2.000000 -0:28 Function Definition: PixelShaderFunction(vf3; (temp 3-component vector of float) +0:28 Function Definition: PixelShaderFunction3(vf3; (global 3-component vector of float) 0:22 Function Parameters: 0:22 'inF0' (in 3-component vector of float) 0:? Sequence @@ -111,7 +111,7 @@ ERROR: node is still EOpNull! 0:? 1.000000 0:? 2.000000 0:? 3.000000 -0:35 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) +0:35 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) 0:29 Function Parameters: 0:29 'inF0' (in 4-component vector of float) 0:? Sequence diff --git a/Test/baseResults/hlsl.intrinsics.frag.out b/Test/baseResults/hlsl.intrinsics.frag.out index c280bbde..f6c41475 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:87 Function Definition: PixelShaderFunction(f1;f1;f1;u1;u1; (temp float) +0:88 Function Definition: PixelShaderFunctionS(f1;f1;f1;u1;u1; (global float) 0:17 Function Parameters: 0:17 'inF0' (in float) 0:17 'inF1' (in float) @@ -10,33 +10,69 @@ gl_FragCoord origin is upper left 0:17 'inU0' (in uint) 0:17 'inU1' (in uint) 0:? Sequence -0:20 all (global bool) -0:20 'inF0' (in float) -0:21 Absolute value (global float) -0:21 'inF0' (in float) -0:22 arc cosine (global float) -0:22 'inF0' (in float) -0:23 any (global bool) -0:23 'inF0' (in float) -0:24 arc sine (global float) -0:24 'inF0' (in float) -0:25 floatBitsToInt (global int) -0:25 'inF0' (in float) -0:26 floatBitsToUint (global uint) -0:26 'inF0' (in float) -0:27 intBitsToFloat (global float) -0:27 'inU0' (in uint) -0:29 arc tangent (global float) -0:29 'inF0' (in float) -0:30 arc tangent (global float) -0:30 'inF0' (in float) -0:30 'inF1' (in float) -0:31 Ceiling (global float) -0:31 'inF0' (in float) -0:32 clamp (global float) -0:32 'inF0' (in float) -0:32 'inF1' (in float) -0:32 'inF2' (in float) +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 '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 '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 '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 '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 '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 '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 '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 '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 '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 '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 '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 'inF0' (in float) +0:32 'inF1' (in float) +0:32 'inF2' (in float) 0:33 Test condition and select (temp void) 0:33 Condition 0:33 Compare Less Than (temp bool) @@ -45,1044 +81,2051 @@ gl_FragCoord origin is upper left 0:33 0.000000 0:33 true case 0:33 Branch: Kill -0:34 cosine (global float) -0:34 'inF0' (in float) -0:35 hyp. cosine (global float) -0:35 'inF0' (in float) -0:36 bitCount (global uint) -0:36 Constant: -0:36 7 (const uint) -0:37 dPdx (global float) -0:37 'inF0' (in float) -0:38 dPdxCoarse (global float) -0:38 'inF0' (in float) -0:39 dPdxFine (global float) -0:39 'inF0' (in float) -0:40 dPdy (global float) -0:40 'inF0' (in float) -0:41 dPdyCoarse (global float) -0:41 'inF0' (in float) -0:42 dPdyFine (global float) -0:42 'inF0' (in float) -0:43 degrees (global float) -0:43 'inF0' (in float) -0:47 exp (global float) -0:47 'inF0' (in float) -0:48 exp2 (global float) -0:48 'inF0' (in float) -0:49 findMSB (global int) -0:49 Constant: -0:49 7 (const int) -0:50 findLSB (global int) -0:50 Constant: -0:50 7 (const int) -0:51 Floor (global float) -0:51 'inF0' (in float) -0:53 mod (global float) -0:53 'inF0' (in float) -0:53 'inF1' (in float) -0:54 Fraction (global float) -0:54 'inF0' (in float) -0:55 frexp (global float) -0:55 'inF0' (in float) -0:55 'inF1' (in float) -0:56 fwidth (global float) -0:56 'inF0' (in float) -0:57 isinf (global bool) -0:57 'inF0' (in float) -0:58 isnan (global bool) -0:58 'inF0' (in float) -0:59 ldexp (global float) -0:59 'inF0' (in float) -0:59 'inF1' (in float) -0:60 log (global float) -0:60 'inF0' (in float) -0:61 component-wise multiply (temp float) -0:61 log2 (temp float) -0:61 'inF0' (in float) -0:61 Constant: -0:61 0.301030 -0:62 log2 (global float) -0:62 'inF0' (in float) -0:63 max (global float) -0:63 'inF0' (in float) -0:63 'inF1' (in float) -0:64 min (global float) -0:64 'inF0' (in float) -0:64 'inF1' (in float) -0:65 pow (global float) -0:65 'inF0' (in float) -0:65 'inF1' (in float) -0:66 radians (global float) -0:66 'inF0' (in float) -0:67 divide (temp float) -0:67 Constant: -0:67 1.000000 -0:67 'inF0' (in float) -0:68 bitFieldReverse (global uint) -0:68 Constant: -0:68 2 (const uint) -0:69 roundEven (global float) -0:69 'inF0' (in float) -0:70 inverse sqrt (global float) -0:70 'inF0' (in float) -0:71 clamp (temp float) -0:71 'inF0' (in float) -0:71 Constant: -0:71 0.000000 -0:71 Constant: -0:71 1.000000 -0:72 Sign (global float) -0:72 'inF0' (in float) -0:73 sine (global float) -0:73 'inF0' (in float) +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 '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 '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 Constant: +0:36 7 (const uint) +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 '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 '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 '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 '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 '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 '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 '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 '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 '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 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 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 '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 '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 '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 '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 '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 '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 '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 '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 '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 'inF0' (in float) +0:62 Sequence +0:62 move second child to first child (temp float) +0:62 'r041' (temp float) +0:62 component-wise multiply (temp float) +0:62 log2 (temp float) +0:62 'inF0' (in float) +0:62 Constant: +0:62 0.301030 +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 '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 '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 '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 '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 'inF0' (in float) +0:68 Sequence +0:68 move second child to first child (temp float) +0:68 'r047' (temp float) +0:68 divide (temp float) +0:68 Constant: +0:68 1.000000 +0:68 'inF0' (in float) +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:70 Sequence +0:70 move second child to first child (temp float) +0:70 'r049' (temp float) +0:70 roundEven (global 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 'inF0' (in float) +0:72 Sequence +0:72 move second child to first child (temp float) +0:72 'r051' (temp float) +0:72 clamp (temp float) +0:72 'inF0' (in float) +0:72 Constant: +0:72 0.000000 +0:72 Constant: +0:72 1.000000 +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 'inF0' (in float) 0:74 Sequence 0:74 move second child to first child (temp float) -0:74 'inF1' (in float) -0:74 sine (temp float) +0:74 'r053' (temp float) +0:74 sine (global float) 0:74 'inF0' (in float) -0:74 move second child to first child (temp float) -0:74 'inF2' (in float) -0:74 cosine (temp float) -0:74 'inF0' (in float) -0:75 hyp. sine (global float) -0:75 'inF0' (in float) -0:76 smoothstep (global float) -0:76 'inF0' (in float) -0:76 'inF1' (in float) -0:76 'inF2' (in float) -0:77 sqrt (global float) -0:77 'inF0' (in float) -0:78 step (global float) -0:78 'inF0' (in float) -0:78 'inF1' (in float) -0:79 tangent (global float) -0:79 'inF0' (in float) -0:80 hyp. tangent (global float) -0:80 'inF0' (in float) -0:82 trunc (global float) -0:82 'inF0' (in float) -0:84 Branch: Return with expression -0:84 Constant: -0:84 0.000000 -0:93 Function Definition: PixelShaderFunction(vf1;vf1;vf1; (temp 1-component vector of float) -0:88 Function Parameters: -0:88 'inF0' (in 1-component vector of float) -0:88 'inF1' (in 1-component vector of float) -0:88 'inF2' (in 1-component vector of float) +0:75 Sequence +0:75 move second child to first child (temp float) +0:75 'inF1' (in float) +0:75 sine (temp float) +0:75 'inF0' (in float) +0:75 move second child to first child (temp float) +0:75 'inF2' (in float) +0:75 cosine (temp float) +0:75 'inF0' (in float) +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 '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 '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 '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 '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 '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 '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 'inF0' (in float) +0:85 Branch: Return with expression +0:85 Constant: +0:85 0.000000 +0:94 Function Definition: PixelShaderFunction1(vf1;vf1;vf1; (global 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) +0:89 'inF2' (in 1-component vector of float) 0:? Sequence -0:90 Branch: Return with expression -0:90 Constant: -0:90 0.000000 -0:172 Function Definition: PixelShaderFunction(vf2;vf2;vf2;vu2;vu2; (temp 2-component vector of float) -0:94 Function Parameters: -0:94 'inF0' (in 2-component vector of float) -0:94 'inF1' (in 2-component vector of float) -0:94 'inF2' (in 2-component vector of float) -0:94 'inU0' (in 2-component vector of uint) -0:94 'inU1' (in 2-component vector of uint) +0:91 Branch: Return with expression +0:91 Constant: +0:91 0.000000 +0:177 Function Definition: PixelShaderFunction2(vf2;vf2;vf2;vu2;vu2; (global 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) +0:95 'inF2' (in 2-component vector of float) +0:95 'inU0' (in 2-component vector of uint) +0:95 'inU1' (in 2-component vector of uint) 0:? Sequence -0:97 all (global bool) -0:97 'inF0' (in 2-component vector of float) -0:98 Absolute value (global 2-component vector of float) -0:98 'inF0' (in 2-component vector of float) -0:99 arc cosine (global 2-component vector of float) -0:99 'inF0' (in 2-component vector of float) -0:100 any (global bool) -0:100 'inF0' (in 2-component vector of float) -0:101 arc sine (global 2-component vector of float) -0:101 'inF0' (in 2-component vector of float) -0:102 floatBitsToInt (global 2-component vector of int) -0:102 'inF0' (in 2-component vector of float) -0:103 floatBitsToUint (global 2-component vector of uint) -0:103 'inF0' (in 2-component vector of float) -0:104 intBitsToFloat (global 2-component vector of float) -0:104 'inU0' (in 2-component vector of uint) -0:106 arc tangent (global 2-component vector of float) -0:106 'inF0' (in 2-component vector of float) -0:107 arc tangent (global 2-component vector of float) -0:107 'inF0' (in 2-component vector of float) -0:107 'inF1' (in 2-component vector of float) -0:108 Ceiling (global 2-component vector of float) -0:108 'inF0' (in 2-component vector of float) -0:109 clamp (global 2-component vector of float) -0:109 'inF0' (in 2-component vector of float) -0:109 'inF1' (in 2-component vector of float) -0:109 'inF2' (in 2-component vector of float) -0:110 Test condition and select (temp void) -0:110 Condition -0:110 any (temp bool) -0:110 Compare Less Than (temp 2-component vector of bool) +0:98 Sequence +0:98 move second child to first child (temp bool) +0:98 'r000' (temp bool) +0:98 all (global 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 '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 '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 '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 '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 '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 '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 '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 '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 '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 '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 'inF0' (in 2-component vector of float) -0:110 Constant: -0:110 0.000000 -0:110 0.000000 -0:110 true case -0:110 Branch: Kill -0:111 cosine (global 2-component vector of float) -0:111 'inF0' (in 2-component vector of float) -0:112 hyp. cosine (global 2-component vector of float) -0:112 'inF0' (in 2-component vector of float) -0:? bitCount (global 2-component vector of uint) -0:? Constant: -0:? 7 (const uint) -0:? 3 (const uint) -0:114 dPdx (global 2-component vector of float) -0:114 'inF0' (in 2-component vector of float) -0:115 dPdxCoarse (global 2-component vector of float) -0:115 'inF0' (in 2-component vector of float) -0:116 dPdxFine (global 2-component vector of float) -0:116 'inF0' (in 2-component vector of float) -0:117 dPdy (global 2-component vector of float) -0:117 'inF0' (in 2-component vector of float) -0:118 dPdyCoarse (global 2-component vector of float) -0:118 'inF0' (in 2-component vector of float) -0:119 dPdyFine (global 2-component vector of float) -0:119 'inF0' (in 2-component vector of float) -0:120 degrees (global 2-component vector of float) -0:120 'inF0' (in 2-component vector of float) -0:121 distance (global float) -0:121 'inF0' (in 2-component vector of float) -0:121 'inF1' (in 2-component vector of float) -0:122 dot-product (global float) -0:122 'inF0' (in 2-component vector of float) -0:122 'inF1' (in 2-component vector of float) -0:126 exp (global 2-component vector of float) -0:126 'inF0' (in 2-component vector of float) -0:127 exp2 (global 2-component vector of float) -0:127 'inF0' (in 2-component vector of float) -0:128 face-forward (global 2-component vector of float) -0:128 'inF0' (in 2-component vector of float) -0:128 'inF1' (in 2-component vector of float) -0:128 'inF2' (in 2-component vector of float) -0:129 findMSB (global int) -0:129 Constant: -0:129 7 (const int) -0:130 findLSB (global int) -0:130 Constant: -0:130 7 (const int) -0:131 Floor (global 2-component vector of float) -0:131 'inF0' (in 2-component vector of float) -0:133 mod (global 2-component vector of float) -0:133 'inF0' (in 2-component vector of float) -0:133 'inF1' (in 2-component vector of float) -0:134 Fraction (global 2-component vector of float) -0:134 'inF0' (in 2-component vector of float) -0:135 frexp (global 2-component vector of float) -0:135 'inF0' (in 2-component vector of float) -0:135 'inF1' (in 2-component vector of float) -0:136 fwidth (global 2-component vector of float) -0:136 'inF0' (in 2-component vector of float) -0:137 isinf (global 2-component vector of bool) -0:137 'inF0' (in 2-component vector of float) -0:138 isnan (global 2-component vector of bool) -0:138 'inF0' (in 2-component vector of float) -0:139 ldexp (global 2-component vector of float) -0:139 'inF0' (in 2-component vector of float) -0:139 'inF1' (in 2-component vector of float) -0:140 length (global float) -0:140 'inF0' (in 2-component vector of float) -0:141 log (global 2-component vector of float) -0:141 'inF0' (in 2-component vector of float) -0:142 vector-scale (temp 2-component vector of float) -0:142 log2 (temp 2-component vector of float) -0:142 'inF0' (in 2-component vector of float) -0:142 Constant: -0:142 0.301030 -0:143 log2 (global 2-component vector of float) -0:143 'inF0' (in 2-component vector of float) -0:144 max (global 2-component vector of float) -0:144 'inF0' (in 2-component vector of float) -0:144 'inF1' (in 2-component vector of float) -0:145 min (global 2-component vector of float) -0:145 'inF0' (in 2-component vector of float) -0:145 'inF1' (in 2-component vector of float) -0:146 normalize (global 2-component vector of float) -0:146 'inF0' (in 2-component vector of float) -0:147 pow (global 2-component vector of float) -0:147 'inF0' (in 2-component vector of float) -0:147 'inF1' (in 2-component vector of float) -0:148 radians (global 2-component vector of float) -0:148 'inF0' (in 2-component vector of float) -0:149 divide (temp 2-component vector of float) -0:149 Constant: -0:149 1.000000 -0:149 'inF0' (in 2-component vector of float) -0:150 reflect (global 2-component vector of float) -0:150 'inF0' (in 2-component vector of float) -0:150 'inF1' (in 2-component vector of float) -0:151 refract (global 2-component vector of float) -0:151 'inF0' (in 2-component vector of float) -0:151 'inF1' (in 2-component vector of float) -0:151 Constant: -0:151 2.000000 -0:? bitFieldReverse (global 2-component vector of uint) -0:? Constant: -0:? 1 (const uint) -0:? 2 (const uint) -0:153 roundEven (global 2-component vector of float) -0:153 'inF0' (in 2-component vector of float) -0:154 inverse sqrt (global 2-component vector of float) -0:154 'inF0' (in 2-component vector of float) -0:155 clamp (temp 2-component vector of float) -0:155 'inF0' (in 2-component vector of float) -0:155 Constant: -0:155 0.000000 -0:155 Constant: -0:155 1.000000 -0:156 Sign (global 2-component vector of float) -0:156 'inF0' (in 2-component vector of float) -0:157 sine (global 2-component vector of float) -0:157 '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) +0:111 Test condition and select (temp void) +0:111 Condition +0:111 any (temp bool) +0:111 Compare Less Than (temp 2-component vector of bool) +0:111 'inF0' (in 2-component vector of float) +0:111 Constant: +0:111 0.000000 +0:111 0.000000 +0:111 true case +0:111 Branch: Kill +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 '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 '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:? Constant: +0:? 7 (const uint) +0:? 3 (const uint) +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 '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 '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 '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 '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 '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 '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 '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 '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 '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 '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 '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 '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:? 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:? 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 '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 '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 '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 '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 '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 '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 '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 '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 '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 '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 'inF0' (in 2-component vector of float) +0:147 Sequence +0:147 move second child to first child (temp 2-component vector of float) +0:147 'r044' (temp 2-component vector of float) +0:147 vector-scale (temp 2-component vector of float) +0:147 log2 (temp 2-component vector of float) +0:147 'inF0' (in 2-component vector of float) +0:147 Constant: +0:147 0.301030 +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 '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 '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 '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 '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 '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 'inF0' (in 2-component vector of float) +0:154 Sequence +0:154 move second child to first child (temp 2-component vector of float) +0:154 'r051' (temp 2-component vector of float) +0:154 divide (temp 2-component vector of float) +0:154 Constant: +0:154 1.000000 +0:154 'inF0' (in 2-component vector of float) +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 '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 'inF0' (in 2-component vector of float) +0:156 'inF1' (in 2-component vector of float) +0:156 Constant: +0:156 2.000000 +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:? 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 'inF1' (in 2-component vector of float) -0:158 sine (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 'inF0' (in 2-component vector of float) -0:158 move second child to first child (temp 2-component vector of float) -0:158 'inF2' (in 2-component vector of float) -0:158 cosine (temp 2-component vector of float) -0:158 'inF0' (in 2-component vector of float) -0:159 hyp. sine (global 2-component vector of float) -0:159 'inF0' (in 2-component vector of float) -0:160 smoothstep (global 2-component vector of float) -0:160 'inF0' (in 2-component vector of float) -0:160 'inF1' (in 2-component vector of float) -0:160 'inF2' (in 2-component vector of float) -0:161 sqrt (global 2-component vector of float) -0:161 'inF0' (in 2-component vector of float) -0:162 step (global 2-component vector of float) -0:162 'inF0' (in 2-component vector of float) -0:162 'inF1' (in 2-component vector of float) -0:163 tangent (global 2-component vector of float) -0:163 'inF0' (in 2-component vector of float) -0:164 hyp. tangent (global 2-component vector of float) -0:164 'inF0' (in 2-component vector of float) -0:166 trunc (global 2-component vector of float) -0:166 'inF0' (in 2-component vector of float) -0:169 Branch: Return with expression +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 'inF0' (in 2-component vector of float) +0:160 Sequence +0:160 move second child to first child (temp 2-component vector of float) +0:160 'r057' (temp 2-component vector of float) +0:160 clamp (temp 2-component vector of float) +0:160 'inF0' (in 2-component vector of float) +0:160 Constant: +0:160 0.000000 +0:160 Constant: +0:160 1.000000 +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 '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 'inF0' (in 2-component vector of float) +0:163 Sequence +0:163 move second child to first child (temp 2-component vector of float) +0:163 'inF1' (in 2-component vector of float) +0:163 sine (temp 2-component vector of float) +0:163 'inF0' (in 2-component vector of float) +0:163 move second child to first child (temp 2-component vector of float) +0:163 'inF2' (in 2-component vector of float) +0:163 cosine (temp 2-component vector of float) +0:163 'inF0' (in 2-component vector of float) +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 '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 '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 '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 '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 '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 '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 'inF0' (in 2-component vector of float) +0:174 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 -0:252 Function Definition: PixelShaderFunction(vf3;vf3;vf3;vu3;vu3; (temp 3-component vector of float) -0:173 Function Parameters: -0:173 'inF0' (in 3-component vector of float) -0:173 'inF1' (in 3-component vector of float) -0:173 'inF2' (in 3-component vector of float) -0:173 'inU0' (in 3-component vector of uint) -0:173 'inU1' (in 3-component vector of uint) +0:258 Function Definition: PixelShaderFunction3(vf3;vf3;vf3;vu3;vu3; (global 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) +0:178 'inF2' (in 3-component vector of float) +0:178 'inU0' (in 3-component vector of uint) +0:178 'inU1' (in 3-component vector of uint) 0:? Sequence -0:176 all (global bool) -0:176 'inF0' (in 3-component vector of float) -0:177 Absolute value (global 3-component vector of float) -0:177 'inF0' (in 3-component vector of float) -0:178 arc cosine (global 3-component vector of float) -0:178 'inF0' (in 3-component vector of float) -0:179 any (global bool) -0:179 'inF0' (in 3-component vector of float) -0:180 arc sine (global 3-component vector of float) -0:180 'inF0' (in 3-component vector of float) -0:181 floatBitsToInt (global 3-component vector of int) -0:181 'inF0' (in 3-component vector of float) -0:182 floatBitsToUint (global 3-component vector of uint) -0:182 'inF0' (in 3-component vector of float) -0:183 intBitsToFloat (global 3-component vector of float) -0:183 'inU0' (in 3-component vector of uint) -0:185 arc tangent (global 3-component vector of float) -0:185 'inF0' (in 3-component vector of float) -0:186 arc tangent (global 3-component vector of float) -0:186 'inF0' (in 3-component vector of float) -0:186 'inF1' (in 3-component vector of float) -0:187 Ceiling (global 3-component vector of float) -0:187 'inF0' (in 3-component vector of float) -0:188 clamp (global 3-component vector of float) -0:188 'inF0' (in 3-component vector of float) -0:188 'inF1' (in 3-component vector of float) -0:188 'inF2' (in 3-component vector of float) -0:189 Test condition and select (temp void) -0:189 Condition -0:189 any (temp bool) -0:189 Compare Less Than (temp 3-component vector of bool) -0:189 'inF0' (in 3-component vector of float) -0:189 Constant: -0:189 0.000000 -0:189 0.000000 -0:189 0.000000 -0:189 true case -0:189 Branch: Kill -0:190 cosine (global 3-component vector of float) -0:190 'inF0' (in 3-component vector of float) -0:191 hyp. cosine (global 3-component vector of float) -0:191 'inF0' (in 3-component vector of float) -0:? bitCount (global 3-component vector of uint) -0:? Constant: -0:? 7 (const uint) -0:? 3 (const uint) -0:? 5 (const uint) -0:193 cross-product (global 3-component vector of float) -0:193 'inF0' (in 3-component vector of float) -0:193 'inF1' (in 3-component vector of float) -0:194 dPdx (global 3-component vector of float) -0:194 'inF0' (in 3-component vector of float) -0:195 dPdxCoarse (global 3-component vector of float) -0:195 'inF0' (in 3-component vector of float) -0:196 dPdxFine (global 3-component vector of float) -0:196 'inF0' (in 3-component vector of float) -0:197 dPdy (global 3-component vector of float) -0:197 'inF0' (in 3-component vector of float) -0:198 dPdyCoarse (global 3-component vector of float) -0:198 'inF0' (in 3-component vector of float) -0:199 dPdyFine (global 3-component vector of float) -0:199 'inF0' (in 3-component vector of float) -0:200 degrees (global 3-component vector of float) -0:200 'inF0' (in 3-component vector of float) -0:201 distance (global float) -0:201 'inF0' (in 3-component vector of float) -0:201 'inF1' (in 3-component vector of float) -0:202 dot-product (global float) -0:202 'inF0' (in 3-component vector of float) -0:202 'inF1' (in 3-component vector of float) -0:206 exp (global 3-component vector of float) -0:206 'inF0' (in 3-component vector of float) -0:207 exp2 (global 3-component vector of float) -0:207 'inF0' (in 3-component vector of float) -0:208 face-forward (global 3-component vector of float) -0:208 'inF0' (in 3-component vector of float) -0:208 'inF1' (in 3-component vector of float) -0:208 'inF2' (in 3-component vector of float) -0:209 findMSB (global int) -0:209 Constant: -0:209 7 (const int) -0:210 findLSB (global int) -0:210 Constant: -0:210 7 (const int) -0:211 Floor (global 3-component vector of float) -0:211 'inF0' (in 3-component vector of float) -0:213 mod (global 3-component vector of float) -0:213 'inF0' (in 3-component vector of float) -0:213 'inF1' (in 3-component vector of float) -0:214 Fraction (global 3-component vector of float) -0:214 'inF0' (in 3-component vector of float) -0:215 frexp (global 3-component vector of float) -0:215 'inF0' (in 3-component vector of float) -0:215 'inF1' (in 3-component vector of float) -0:216 fwidth (global 3-component vector of float) -0:216 'inF0' (in 3-component vector of float) -0:217 isinf (global 3-component vector of bool) -0:217 'inF0' (in 3-component vector of float) -0:218 isnan (global 3-component vector of bool) -0:218 'inF0' (in 3-component vector of float) -0:219 ldexp (global 3-component vector of float) -0:219 'inF0' (in 3-component vector of float) -0:219 'inF1' (in 3-component vector of float) -0:220 length (global float) -0:220 'inF0' (in 3-component vector of float) -0:221 log (global 3-component vector of float) -0:221 'inF0' (in 3-component vector of float) -0:222 vector-scale (temp 3-component vector of float) -0:222 log2 (temp 3-component vector of float) -0:222 'inF0' (in 3-component vector of float) -0:222 Constant: -0:222 0.301030 -0:223 log2 (global 3-component vector of float) -0:223 'inF0' (in 3-component vector of float) -0:224 max (global 3-component vector of float) -0:224 'inF0' (in 3-component vector of float) -0:224 'inF1' (in 3-component vector of float) -0:225 min (global 3-component vector of float) -0:225 'inF0' (in 3-component vector of float) -0:225 'inF1' (in 3-component vector of float) -0:226 normalize (global 3-component vector of float) -0:226 'inF0' (in 3-component vector of float) -0:227 pow (global 3-component vector of float) -0:227 'inF0' (in 3-component vector of float) -0:227 'inF1' (in 3-component vector of float) -0:228 radians (global 3-component vector of float) -0:228 'inF0' (in 3-component vector of float) -0:229 divide (temp 3-component vector of float) -0:229 Constant: -0:229 1.000000 -0:229 'inF0' (in 3-component vector of float) -0:230 reflect (global 3-component vector of float) -0:230 'inF0' (in 3-component vector of float) -0:230 'inF1' (in 3-component vector of float) -0:231 refract (global 3-component vector of float) -0:231 'inF0' (in 3-component vector of float) -0:231 'inF1' (in 3-component vector of float) -0:231 Constant: -0:231 2.000000 -0:? bitFieldReverse (global 3-component vector of uint) -0:? Constant: -0:? 1 (const uint) -0:? 2 (const uint) -0:? 3 (const uint) -0:233 roundEven (global 3-component vector of float) -0:233 'inF0' (in 3-component vector of float) -0:234 inverse sqrt (global 3-component vector of float) -0:234 'inF0' (in 3-component vector of float) -0:235 clamp (temp 3-component vector of float) -0:235 'inF0' (in 3-component vector of float) -0:235 Constant: -0:235 0.000000 -0:235 Constant: -0:235 1.000000 -0:236 Sign (global 3-component vector of float) -0:236 'inF0' (in 3-component vector of float) -0:237 sine (global 3-component vector of float) -0:237 'inF0' (in 3-component vector of float) +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 '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 '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 '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 '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 '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 '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 '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 '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 '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 '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 '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 '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) +0:194 Test condition and select (temp void) +0:194 Condition +0:194 any (temp bool) +0:194 Compare Less Than (temp 3-component vector of bool) +0:194 'inF0' (in 3-component vector of float) +0:194 Constant: +0:194 0.000000 +0:194 0.000000 +0:194 0.000000 +0:194 true case +0:194 Branch: Kill +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 '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 '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:? Constant: +0:? 7 (const uint) +0:? 3 (const uint) +0:? 5 (const uint) +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 '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 '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 '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 '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 '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 '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 '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 '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 '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 '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 '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 '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 '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:? Constant: +0:? 2 (const uint) +0:? 3 (const uint) +0:? 4 (const uint) +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:? Constant: +0:? 2 (const uint) +0:? 3 (const uint) +0:? 4 (const uint) +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 '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 '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 '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 '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 '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 '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 '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 '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 '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 float) +0:226 'r043' (temp float) +0:226 length (global float) +0:226 'inF0' (in 3-component vector of float) +0:227 Sequence +0:227 move second child to first child (temp 3-component vector of float) +0:227 'r044' (temp 3-component vector of float) +0:227 log (global 3-component vector of 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 'r045' (temp 3-component vector of float) +0:228 vector-scale (temp 3-component vector of float) +0:228 log2 (temp 3-component vector of float) +0:228 'inF0' (in 3-component vector of float) +0:228 Constant: +0:228 0.301030 +0:229 Sequence +0:229 move second child to first child (temp 3-component vector of float) +0:229 'r046' (temp 3-component vector of float) +0:229 log2 (global 3-component vector of float) +0:229 'inF0' (in 3-component vector of float) +0:230 Sequence +0:230 move second child to first child (temp 3-component vector of float) +0:230 'r047' (temp 3-component vector of float) +0:230 max (global 3-component vector of float) +0:230 'inF0' (in 3-component vector of float) +0:230 'inF1' (in 3-component vector of float) +0:231 Sequence +0:231 move second child to first child (temp 3-component vector of float) +0:231 'r048' (temp 3-component vector of float) +0:231 min (global 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 'r049' (temp 3-component vector of float) +0:232 normalize (global 3-component vector of float) +0:232 'inF0' (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 'r050' (temp 3-component vector of float) +0:233 pow (global 3-component vector of float) +0:233 'inF0' (in 3-component vector of float) +0:233 'inF1' (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 'r051' (temp 3-component vector of float) +0:234 radians (global 3-component vector of float) +0:234 'inF0' (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 'r052' (temp 3-component vector of float) +0:235 divide (temp 3-component vector of float) +0:235 Constant: +0:235 1.000000 +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) +0:236 'r053' (temp 3-component vector of float) +0:236 reflect (global 3-component vector of float) +0:236 'inF0' (in 3-component vector of float) +0:236 'inF1' (in 3-component vector of float) +0:237 Sequence +0:237 move second child to first child (temp 3-component vector of float) +0:237 'r054' (temp 3-component vector of float) +0:237 refract (global 3-component vector of float) +0:237 'inF0' (in 3-component vector of float) +0:237 'inF1' (in 3-component vector of float) +0:237 Constant: +0:237 2.000000 0:238 Sequence -0:238 move second child to first child (temp 3-component vector of float) -0:238 'inF1' (in 3-component vector of float) -0:238 sine (temp 3-component vector of float) -0:238 'inF0' (in 3-component vector of float) -0:238 move second child to first child (temp 3-component vector of float) -0:238 'inF2' (in 3-component vector of float) -0:238 cosine (temp 3-component vector of float) -0:238 'inF0' (in 3-component vector of float) -0:239 hyp. sine (global 3-component vector of float) -0:239 'inF0' (in 3-component vector of float) -0:240 smoothstep (global 3-component vector of float) -0:240 'inF0' (in 3-component vector of float) -0:240 'inF1' (in 3-component vector of float) -0:240 'inF2' (in 3-component vector of float) -0:241 sqrt (global 3-component vector of float) -0:241 'inF0' (in 3-component vector of float) -0:242 step (global 3-component vector of float) -0:242 'inF0' (in 3-component vector of float) -0:242 'inF1' (in 3-component vector of float) -0:243 tangent (global 3-component vector of float) -0:243 'inF0' (in 3-component vector of float) -0:244 hyp. tangent (global 3-component vector of float) -0:244 'inF0' (in 3-component vector of float) -0:246 trunc (global 3-component vector of float) -0:246 'inF0' (in 3-component vector of float) -0:249 Branch: Return with expression +0:238 move second child to first child (temp 3-component vector of uint) +0:238 'r055' (temp 3-component vector of uint) +0:? bitFieldReverse (global 3-component vector of uint) +0:? Constant: +0:? 1 (const uint) +0:? 2 (const uint) +0:? 3 (const uint) +0:239 Sequence +0:239 move second child to first child (temp 3-component vector of float) +0:239 'r056' (temp 3-component vector of float) +0:239 roundEven (global 3-component vector of float) +0:239 'inF0' (in 3-component vector of float) +0:240 Sequence +0:240 move second child to first child (temp 3-component vector of float) +0:240 'r057' (temp 3-component vector of float) +0:240 inverse sqrt (global 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 'r058' (temp 3-component vector of float) +0:241 clamp (temp 3-component vector of float) +0:241 'inF0' (in 3-component vector of float) +0:241 Constant: +0:241 0.000000 +0:241 Constant: +0:241 1.000000 +0:242 Sequence +0:242 move second child to first child (temp 3-component vector of float) +0:242 'r059' (temp 3-component vector of float) +0:242 Sign (global 3-component vector of float) +0:242 'inF0' (in 3-component vector of float) +0:243 Sequence +0:243 move second child to first child (temp 3-component vector of float) +0:243 'r060' (temp 3-component vector of float) +0:243 sine (global 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 'inF1' (in 3-component vector of float) +0:244 sine (temp 3-component vector of float) +0:244 'inF0' (in 3-component vector of float) +0:244 move second child to first child (temp 3-component vector of float) +0:244 'inF2' (in 3-component vector of float) +0:244 cosine (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) +0:245 'r061' (temp 3-component vector of float) +0:245 hyp. sine (global 3-component vector of float) +0:245 'inF0' (in 3-component vector of float) +0:246 Sequence +0:246 move second child to first child (temp 3-component vector of float) +0:246 'r062' (temp 3-component vector of float) +0:246 smoothstep (global 3-component vector of float) +0:246 'inF0' (in 3-component vector of float) +0:246 'inF1' (in 3-component vector of float) +0:246 'inF2' (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 'r063' (temp 3-component vector of float) +0:247 sqrt (global 3-component vector of float) +0:247 'inF0' (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 'r064' (temp 3-component vector of float) +0:248 step (global 3-component vector of float) +0:248 'inF0' (in 3-component vector of float) +0:248 'inF1' (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 'r065' (temp 3-component vector of float) +0:249 tangent (global 3-component vector of float) +0:249 'inF0' (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 'r066' (temp 3-component vector of float) +0:250 hyp. tangent (global 3-component vector of float) +0:250 'inF0' (in 3-component vector of float) +0:252 Sequence +0:252 move second child to first child (temp 3-component vector of float) +0:252 'r067' (temp 3-component vector of float) +0:252 trunc (global 3-component vector of float) +0:252 'inF0' (in 3-component vector of float) +0:255 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 -0:393 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vu4;vu4; (temp 4-component vector of float) -0:253 Function Parameters: -0:253 'inF0' (in 4-component vector of float) -0:253 'inF1' (in 4-component vector of float) -0:253 'inF2' (in 4-component vector of float) -0:253 'inU0' (in 4-component vector of uint) -0:253 'inU1' (in 4-component vector of uint) +0:399 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vu4;vu4; (global 4-component vector of float) +0:259 Function Parameters: +0:259 'inF0' (in 4-component vector of float) +0:259 'inF1' (in 4-component vector of float) +0:259 'inF2' (in 4-component vector of float) +0:259 'inU0' (in 4-component vector of uint) +0:259 'inU1' (in 4-component vector of uint) 0:? Sequence -0:256 all (global bool) -0:256 'inF0' (in 4-component vector of float) -0:257 Absolute value (global 4-component vector of float) -0:257 'inF0' (in 4-component vector of float) -0:258 arc cosine (global 4-component vector of float) -0:258 'inF0' (in 4-component vector of float) -0:259 any (global bool) -0:259 'inF0' (in 4-component vector of float) -0:260 arc sine (global 4-component vector of float) -0:260 'inF0' (in 4-component vector of float) -0:261 floatBitsToInt (global 4-component vector of int) -0:261 'inF0' (in 4-component vector of float) -0:262 floatBitsToUint (global 4-component vector of uint) -0:262 'inF0' (in 4-component vector of float) -0:263 intBitsToFloat (global 4-component vector of float) -0:263 'inU0' (in 4-component vector of uint) -0:265 arc tangent (global 4-component vector of float) -0:265 'inF0' (in 4-component vector of float) -0:266 arc tangent (global 4-component vector of float) -0:266 'inF0' (in 4-component vector of float) -0:266 'inF1' (in 4-component vector of float) -0:267 Ceiling (global 4-component vector of float) -0:267 'inF0' (in 4-component vector of float) -0:268 clamp (global 4-component vector of float) -0:268 'inF0' (in 4-component vector of float) -0:268 'inF1' (in 4-component vector of float) -0:268 'inF2' (in 4-component vector of float) -0:269 Test condition and select (temp void) -0:269 Condition -0:269 any (temp bool) -0:269 Compare Less Than (temp 4-component vector of bool) -0:269 'inF0' (in 4-component vector of float) -0:269 Constant: -0:269 0.000000 -0:269 0.000000 -0:269 0.000000 -0:269 0.000000 -0:269 true case -0:269 Branch: Kill -0:270 cosine (global 4-component vector of float) -0:270 'inF0' (in 4-component vector of float) -0:271 hyp. cosine (global 4-component vector of float) -0:271 'inF0' (in 4-component vector of float) -0:? bitCount (global 4-component vector of uint) -0:? Constant: -0:? 7 (const uint) -0:? 3 (const uint) -0:? 5 (const uint) -0:? 2 (const uint) -0:273 dPdx (global 4-component vector of float) -0:273 'inF0' (in 4-component vector of float) -0:274 dPdxCoarse (global 4-component vector of float) -0:274 'inF0' (in 4-component vector of float) -0:275 dPdxFine (global 4-component vector of float) -0:275 'inF0' (in 4-component vector of float) -0:276 dPdy (global 4-component vector of float) -0:276 'inF0' (in 4-component vector of float) -0:277 dPdyCoarse (global 4-component vector of float) -0:277 'inF0' (in 4-component vector of float) -0:278 dPdyFine (global 4-component vector of float) -0:278 'inF0' (in 4-component vector of float) -0:279 degrees (global 4-component vector of float) -0:279 'inF0' (in 4-component vector of float) -0:280 distance (global float) -0:280 'inF0' (in 4-component vector of float) -0:280 'inF1' (in 4-component vector of float) -0:281 dot-product (global float) -0:281 'inF0' (in 4-component vector of float) -0:281 'inF1' (in 4-component vector of float) -0:282 Construct vec4 (temp 4-component vector of float) -0:282 Constant: -0:282 1.000000 -0:282 component-wise multiply (temp float) -0:282 direct index (temp float) +0:262 Sequence +0:262 move second child to first child (temp bool) +0:262 'r000' (temp bool) +0:262 all (global bool) +0:262 'inF0' (in 4-component vector of float) +0:263 Sequence +0:263 move second child to first child (temp 4-component vector of float) +0:263 'r001' (temp 4-component vector of float) +0:263 Absolute value (global 4-component vector of float) +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 'r002' (temp 4-component vector of float) +0:264 arc cosine (global 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 bool) +0:265 'r003' (temp bool) +0:265 any (global bool) +0:265 'inF0' (in 4-component vector of float) +0:266 Sequence +0:266 move second child to first child (temp 4-component vector of float) +0:266 'r004' (temp 4-component vector of float) +0:266 arc sine (global 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 int) +0:267 'r005' (temp 4-component vector of int) +0:267 floatBitsToInt (global 4-component vector of int) +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 uint) +0:268 'r006' (temp 4-component vector of uint) +0:268 floatBitsToUint (global 4-component vector of uint) +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 float) +0:269 'r007' (temp 4-component vector of float) +0:269 intBitsToFloat (global 4-component vector of float) +0:269 'inU0' (in 4-component vector of uint) +0:271 Sequence +0:271 move second child to first child (temp 4-component vector of float) +0:271 'r009' (temp 4-component vector of float) +0:271 arc tangent (global 4-component vector of float) +0:271 'inF0' (in 4-component vector of float) +0:272 Sequence +0:272 move second child to first child (temp 4-component vector of float) +0:272 'r010' (temp 4-component vector of float) +0:272 arc tangent (global 4-component vector of float) +0:272 'inF0' (in 4-component vector of float) +0:272 'inF1' (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 'r011' (temp 4-component vector of float) +0:273 Ceiling (global 4-component vector of float) +0:273 'inF0' (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 'r012' (temp 4-component vector of float) +0:274 clamp (global 4-component vector of float) +0:274 'inF0' (in 4-component vector of float) +0:274 'inF1' (in 4-component vector of float) +0:274 'inF2' (in 4-component vector of float) +0:275 Test condition and select (temp void) +0:275 Condition +0:275 any (temp bool) +0:275 Compare Less Than (temp 4-component vector of bool) +0:275 'inF0' (in 4-component vector of float) +0:275 Constant: +0:275 0.000000 +0:275 0.000000 +0:275 0.000000 +0:275 0.000000 +0:275 true case +0:275 Branch: Kill +0:276 Sequence +0:276 move second child to first child (temp 4-component vector of float) +0:276 'r013' (temp 4-component vector of float) +0:276 cosine (global 4-component vector of float) +0:276 'inF0' (in 4-component vector of float) +0:277 Sequence +0:277 move second child to first child (temp 4-component vector of float) +0:277 'r014' (temp 4-component vector of float) +0:277 hyp. cosine (global 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 uint) +0:278 'r015' (temp 4-component vector of uint) +0:? bitCount (global 4-component vector of uint) +0:? Constant: +0:? 7 (const uint) +0:? 3 (const uint) +0:? 5 (const uint) +0:? 2 (const uint) +0:279 Sequence +0:279 move second child to first child (temp 4-component vector of float) +0:279 'r016' (temp 4-component vector of float) +0:279 dPdx (global 4-component vector of float) +0:279 'inF0' (in 4-component vector of float) +0:280 Sequence +0:280 move second child to first child (temp 4-component vector of float) +0:280 'r017' (temp 4-component vector of float) +0:280 dPdxCoarse (global 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 'r018' (temp 4-component vector of float) +0:281 dPdxFine (global 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 'r019' (temp 4-component vector of float) +0:282 dPdy (global 4-component vector of float) 0:282 'inF0' (in 4-component vector of float) -0:282 Constant: -0:282 1 (const int) -0:282 direct index (temp float) -0:282 'inF1' (in 4-component vector of float) -0:282 Constant: -0:282 1 (const int) -0:282 direct index (temp float) -0:282 'inF0' (in 4-component vector of float) -0:282 Constant: -0:282 2 (const int) -0:282 direct index (temp float) -0:282 'inF1' (in 4-component vector of float) -0:282 Constant: -0:282 3 (const int) -0:286 exp (global 4-component vector of float) -0:286 'inF0' (in 4-component vector of float) -0:287 exp2 (global 4-component vector of float) -0:287 'inF0' (in 4-component vector of float) -0:288 face-forward (global 4-component vector of float) -0:288 'inF0' (in 4-component vector of float) -0:288 'inF1' (in 4-component vector of float) -0:288 'inF2' (in 4-component vector of float) -0:289 findMSB (global int) -0:289 Constant: -0:289 7 (const int) -0:290 findLSB (global int) -0:290 Constant: -0:290 7 (const int) -0:291 Floor (global 4-component vector of float) -0:291 'inF0' (in 4-component vector of float) -0:293 mod (global 4-component vector of float) -0:293 'inF0' (in 4-component vector of float) -0:293 'inF1' (in 4-component vector of float) -0:294 Fraction (global 4-component vector of float) -0:294 'inF0' (in 4-component vector of float) -0:295 frexp (global 4-component vector of float) -0:295 'inF0' (in 4-component vector of float) -0:295 'inF1' (in 4-component vector of float) -0:296 fwidth (global 4-component vector of float) -0:296 'inF0' (in 4-component vector of float) -0:297 isinf (global 4-component vector of bool) -0:297 'inF0' (in 4-component vector of float) -0:298 isnan (global 4-component vector of bool) -0:298 'inF0' (in 4-component vector of float) -0:299 ldexp (global 4-component vector of float) -0:299 'inF0' (in 4-component vector of float) -0:299 'inF1' (in 4-component vector of float) -0:300 length (global float) -0:300 'inF0' (in 4-component vector of float) -0:301 log (global 4-component vector of float) -0:301 'inF0' (in 4-component vector of float) -0:302 vector-scale (temp 4-component vector of float) -0:302 log2 (temp 4-component vector of float) -0:302 'inF0' (in 4-component vector of float) -0:302 Constant: -0:302 0.301030 -0:303 log2 (global 4-component vector of float) -0:303 'inF0' (in 4-component vector of float) -0:304 max (global 4-component vector of float) -0:304 'inF0' (in 4-component vector of float) -0:304 'inF1' (in 4-component vector of float) -0:305 min (global 4-component vector of float) -0:305 'inF0' (in 4-component vector of float) -0:305 'inF1' (in 4-component vector of float) -0:306 normalize (global 4-component vector of float) -0:306 'inF0' (in 4-component vector of float) -0:307 pow (global 4-component vector of float) -0:307 'inF0' (in 4-component vector of float) -0:307 'inF1' (in 4-component vector of float) -0:308 radians (global 4-component vector of float) -0:308 'inF0' (in 4-component vector of float) -0:309 divide (temp 4-component vector of float) -0:309 Constant: -0:309 1.000000 -0:309 'inF0' (in 4-component vector of float) -0:310 reflect (global 4-component vector of float) -0:310 'inF0' (in 4-component vector of float) -0:310 'inF1' (in 4-component vector of float) -0:311 refract (global 4-component vector of float) -0:311 'inF0' (in 4-component vector of float) -0:311 'inF1' (in 4-component vector of float) -0:311 Constant: -0:311 2.000000 -0:? bitFieldReverse (global 4-component vector of uint) -0:? Constant: -0:? 1 (const uint) -0:? 2 (const uint) -0:? 3 (const uint) -0:? 4 (const uint) -0:313 roundEven (global 4-component vector of float) -0:313 'inF0' (in 4-component vector of float) -0:314 inverse sqrt (global 4-component vector of float) -0:314 'inF0' (in 4-component vector of float) -0:315 clamp (temp 4-component vector of float) -0:315 'inF0' (in 4-component vector of float) -0:315 Constant: -0:315 0.000000 -0:315 Constant: -0:315 1.000000 -0:316 Sign (global 4-component vector of float) -0:316 'inF0' (in 4-component vector of float) -0:317 sine (global 4-component vector of float) -0:317 '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 'r020' (temp 4-component vector of float) +0:283 dPdyCoarse (global 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 'r021' (temp 4-component vector of float) +0:284 dPdyFine (global 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 'r022' (temp 4-component vector of float) +0:285 degrees (global 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 float) +0:286 'r023' (temp float) +0:286 distance (global float) +0:286 'inF0' (in 4-component vector of float) +0:286 'inF1' (in 4-component vector of float) +0:287 Sequence +0:287 move second child to first child (temp float) +0:287 'r024' (temp float) +0:287 dot-product (global 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 4-component vector of float) +0:288 'r025' (temp 4-component vector of float) +0:288 Construct vec4 (temp 4-component vector of float) +0:288 Constant: +0:288 1.000000 +0:288 component-wise multiply (temp float) +0:288 direct index (temp float) +0:288 'inF0' (in 4-component vector of float) +0:288 Constant: +0:288 1 (const int) +0:288 direct index (temp float) +0:288 'inF1' (in 4-component vector of float) +0:288 Constant: +0:288 1 (const int) +0:288 direct index (temp float) +0:288 'inF0' (in 4-component vector of float) +0:288 Constant: +0:288 2 (const int) +0:288 direct index (temp float) +0:288 'inF1' (in 4-component vector of float) +0:288 Constant: +0:288 3 (const int) +0:292 Sequence +0:292 move second child to first child (temp 4-component vector of float) +0:292 'r029' (temp 4-component vector of float) +0:292 exp (global 4-component vector of float) +0:292 'inF0' (in 4-component vector of float) +0:293 Sequence +0:293 move second child to first child (temp 4-component vector of float) +0:293 'r030' (temp 4-component vector of float) +0:293 exp2 (global 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 'r031' (temp 4-component vector of float) +0:294 face-forward (global 4-component vector of float) +0:294 'inF0' (in 4-component vector of float) +0:294 'inF1' (in 4-component vector of float) +0:294 'inF2' (in 4-component vector of float) +0:295 Sequence +0:295 move second child to first child (temp 4-component vector of uint) +0:295 'r032' (temp 4-component vector of uint) +0:? findMSB (global 4-component vector of uint) +0:? Constant: +0:? 7 (const uint) +0:? 8 (const uint) +0:? 9 (const uint) +0:? 10 (const uint) +0:296 Sequence +0:296 move second child to first child (temp 4-component vector of uint) +0:296 'r033' (temp 4-component vector of uint) +0:? findLSB (global 4-component vector of uint) +0:? Constant: +0:? 7 (const uint) +0:? 8 (const uint) +0:? 9 (const uint) +0:? 10 (const uint) +0:297 Sequence +0:297 move second child to first child (temp 4-component vector of float) +0:297 'r034' (temp 4-component vector of float) +0:297 Floor (global 4-component vector of float) +0:297 'inF0' (in 4-component vector of float) +0:299 Sequence +0:299 move second child to first child (temp 4-component vector of float) +0:299 'r036' (temp 4-component vector of float) +0:299 mod (global 4-component vector of float) +0:299 'inF0' (in 4-component vector of float) +0:299 'inF1' (in 4-component vector of float) +0:300 Sequence +0:300 move second child to first child (temp 4-component vector of float) +0:300 'r037' (temp 4-component vector of float) +0:300 Fraction (global 4-component vector of float) +0:300 'inF0' (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 'r038' (temp 4-component vector of float) +0:301 frexp (global 4-component vector of float) +0:301 'inF0' (in 4-component vector of float) +0:301 'inF1' (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 'r039' (temp 4-component vector of float) +0:302 fwidth (global 4-component vector of float) +0:302 'inF0' (in 4-component vector of float) +0:303 Sequence +0:303 move second child to first child (temp 4-component vector of bool) +0:303 'r040' (temp 4-component vector of bool) +0:303 isinf (global 4-component vector of bool) +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 'r041' (temp 4-component vector of bool) +0:304 isnan (global 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 float) +0:305 'r042' (temp 4-component vector of float) +0:305 ldexp (global 4-component vector of float) +0:305 'inF0' (in 4-component vector of float) +0:305 'inF1' (in 4-component vector of float) +0:306 Sequence +0:306 move second child to first child (temp 4-component vector of float) +0:306 'r039a' (temp 4-component vector of float) +0:306 mix (global 4-component vector of float) +0:306 'inF0' (in 4-component vector of float) +0:306 'inF1' (in 4-component vector of float) +0:306 'inF2' (in 4-component vector of float) +0:307 Sequence +0:307 move second child to first child (temp float) +0:307 'r043' (temp float) +0:307 length (global float) +0:307 'inF0' (in 4-component vector of float) +0:308 Sequence +0:308 move second child to first child (temp 4-component vector of float) +0:308 'r044' (temp 4-component vector of float) +0:308 log (global 4-component vector of 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 'r045' (temp 4-component vector of float) +0:309 vector-scale (temp 4-component vector of float) +0:309 log2 (temp 4-component vector of float) +0:309 'inF0' (in 4-component vector of float) +0:309 Constant: +0:309 0.301030 +0:310 Sequence +0:310 move second child to first child (temp 4-component vector of float) +0:310 'r046' (temp 4-component vector of float) +0:310 log2 (global 4-component vector of float) +0:310 'inF0' (in 4-component vector of float) +0:311 Sequence +0:311 move second child to first child (temp 4-component vector of float) +0:311 'r047' (temp 4-component vector of float) +0:311 max (global 4-component vector of float) +0:311 'inF0' (in 4-component vector of float) +0:311 'inF1' (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 'r048' (temp 4-component vector of float) +0:312 min (global 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 'r049' (temp 4-component vector of float) +0:313 normalize (global 4-component vector of float) +0:313 'inF0' (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 'r050' (temp 4-component vector of float) +0:314 pow (global 4-component vector of float) +0:314 'inF0' (in 4-component vector of float) +0:314 'inF1' (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 'r051' (temp 4-component vector of float) +0:315 radians (global 4-component vector of float) +0:315 'inF0' (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 'r052' (temp 4-component vector of float) +0:316 divide (temp 4-component vector of float) +0:316 Constant: +0:316 1.000000 +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) +0:317 'r053' (temp 4-component vector of float) +0:317 reflect (global 4-component vector of float) +0:317 'inF0' (in 4-component vector of float) +0:317 'inF1' (in 4-component vector of float) 0:318 Sequence 0:318 move second child to first child (temp 4-component vector of float) -0:318 'inF1' (in 4-component vector of float) -0:318 sine (temp 4-component vector of float) +0:318 'r054' (temp 4-component vector of float) +0:318 refract (global 4-component vector of float) 0:318 'inF0' (in 4-component vector of float) -0:318 move second child to first child (temp 4-component vector of float) -0:318 'inF2' (in 4-component vector of float) -0:318 cosine (temp 4-component vector of float) -0:318 'inF0' (in 4-component vector of float) -0:319 hyp. sine (global 4-component vector of float) -0:319 'inF0' (in 4-component vector of float) -0:320 smoothstep (global 4-component vector of float) -0:320 'inF0' (in 4-component vector of float) -0:320 'inF1' (in 4-component vector of float) -0:320 'inF2' (in 4-component vector of float) -0:321 sqrt (global 4-component vector of float) -0:321 'inF0' (in 4-component vector of float) -0:322 step (global 4-component vector of float) -0:322 'inF0' (in 4-component vector of float) -0:322 'inF1' (in 4-component vector of float) -0:323 tangent (global 4-component vector of float) -0:323 'inF0' (in 4-component vector of float) -0:324 hyp. tangent (global 4-component vector of float) -0:324 'inF0' (in 4-component vector of float) -0:326 trunc (global 4-component vector of float) -0:326 'inF0' (in 4-component vector of float) -0:329 Branch: Return with expression +0:318 'inF1' (in 4-component vector of float) +0:318 Constant: +0:318 2.000000 +0:319 Sequence +0:319 move second child to first child (temp 4-component vector of uint) +0:319 'r055' (temp 4-component vector of uint) +0:? bitFieldReverse (global 4-component vector of uint) +0:? Constant: +0:? 1 (const uint) +0:? 2 (const uint) +0:? 3 (const uint) +0:? 4 (const uint) +0:320 Sequence +0:320 move second child to first child (temp 4-component vector of float) +0:320 'r056' (temp 4-component vector of float) +0:320 roundEven (global 4-component vector of float) +0:320 'inF0' (in 4-component vector of float) +0:321 Sequence +0:321 move second child to first child (temp 4-component vector of float) +0:321 'r057' (temp 4-component vector of float) +0:321 inverse sqrt (global 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 'r058' (temp 4-component vector of float) +0:322 clamp (temp 4-component vector of float) +0:322 'inF0' (in 4-component vector of float) +0:322 Constant: +0:322 0.000000 +0:322 Constant: +0:322 1.000000 +0:323 Sequence +0:323 move second child to first child (temp 4-component vector of float) +0:323 'r059' (temp 4-component vector of float) +0:323 Sign (global 4-component vector of float) +0:323 'inF0' (in 4-component vector of float) +0:324 Sequence +0:324 move second child to first child (temp 4-component vector of float) +0:324 'r060' (temp 4-component vector of float) +0:324 sine (global 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 'inF1' (in 4-component vector of float) +0:325 sine (temp 4-component vector of float) +0:325 'inF0' (in 4-component vector of float) +0:325 move second child to first child (temp 4-component vector of float) +0:325 'inF2' (in 4-component vector of float) +0:325 cosine (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) +0:326 'r061' (temp 4-component vector of float) +0:326 hyp. sine (global 4-component vector of float) +0:326 'inF0' (in 4-component vector of float) +0:327 Sequence +0:327 move second child to first child (temp 4-component vector of float) +0:327 'r062' (temp 4-component vector of float) +0:327 smoothstep (global 4-component vector of float) +0:327 'inF0' (in 4-component vector of float) +0:327 'inF1' (in 4-component vector of float) +0:327 'inF2' (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 'r063' (temp 4-component vector of float) +0:328 sqrt (global 4-component vector of float) +0:328 'inF0' (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 'r064' (temp 4-component vector of float) +0:329 step (global 4-component vector of float) +0:329 'inF0' (in 4-component vector of float) +0:329 'inF1' (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 'r065' (temp 4-component vector of float) +0:330 tangent (global 4-component vector of float) +0:330 'inF0' (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 'r066' (temp 4-component vector of float) +0:331 hyp. tangent (global 4-component vector of float) +0:331 'inF0' (in 4-component vector of float) +0:333 Sequence +0:333 move second child to first child (temp 4-component vector of float) +0:333 'r067' (temp 4-component vector of float) +0:333 trunc (global 4-component vector of float) +0:333 'inF0' (in 4-component vector of float) +0:336 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 0:? 4.000000 -0:402 Function Definition: PixelShaderFunction(mf22;mf22;mf22; (temp 2X2 matrix of float) -0:394 Function Parameters: -0:394 'inF0' (in 2X2 matrix of float) -0:394 'inF1' (in 2X2 matrix of float) -0:394 'inF2' (in 2X2 matrix of float) +0:408 Function Definition: PixelShaderFunction2x2(mf22;mf22;mf22; (global 2X2 matrix of float) +0:400 Function Parameters: +0:400 'inF0' (in 2X2 matrix of float) +0:400 'inF1' (in 2X2 matrix of float) +0:400 'inF2' (in 2X2 matrix of float) 0:? Sequence -0:396 all (global bool) -0:396 'inF0' (in 2X2 matrix of float) -0:396 Absolute value (global 2X2 matrix of float) -0:396 'inF0' (in 2X2 matrix of float) -0:396 arc cosine (global 2X2 matrix of float) -0:396 'inF0' (in 2X2 matrix of float) -0:396 any (global bool) -0:396 'inF0' (in 2X2 matrix of float) -0:396 arc sine (global 2X2 matrix of float) -0:396 'inF0' (in 2X2 matrix of float) -0:396 arc tangent (global 2X2 matrix of float) -0:396 'inF0' (in 2X2 matrix of float) -0:396 arc tangent (global 2X2 matrix of float) -0:396 'inF0' (in 2X2 matrix of float) -0:396 'inF1' (in 2X2 matrix of float) -0:396 Ceiling (global 2X2 matrix of float) -0:396 'inF0' (in 2X2 matrix of float) -0:396 Test condition and select (temp void) -0:396 Condition -0:396 any (temp bool) -0:396 Compare Less Than (temp 2X2 matrix of bool) -0:396 'inF0' (in 2X2 matrix of float) -0:396 Constant: -0:396 0.000000 -0:396 0.000000 -0:396 0.000000 -0:396 0.000000 -0:396 true case -0:396 Branch: Kill -0:396 clamp (global 2X2 matrix of float) -0:396 'inF0' (in 2X2 matrix of float) -0:396 'inF1' (in 2X2 matrix of float) -0:396 'inF2' (in 2X2 matrix of float) -0:396 cosine (global 2X2 matrix of float) -0:396 'inF0' (in 2X2 matrix of float) -0:396 hyp. cosine (global 2X2 matrix of float) -0:396 'inF0' (in 2X2 matrix of float) -0:396 dPdx (global 2X2 matrix of float) -0:396 'inF0' (in 2X2 matrix of float) -0:396 dPdxCoarse (global 2X2 matrix of float) -0:396 'inF0' (in 2X2 matrix of float) -0:396 dPdxFine (global 2X2 matrix of float) -0:396 'inF0' (in 2X2 matrix of float) -0:396 dPdy (global 2X2 matrix of float) -0:396 'inF0' (in 2X2 matrix of float) -0:396 dPdyCoarse (global 2X2 matrix of float) -0:396 'inF0' (in 2X2 matrix of float) -0:396 dPdyFine (global 2X2 matrix of float) -0:396 'inF0' (in 2X2 matrix of float) -0:396 degrees (global 2X2 matrix of float) -0:396 'inF0' (in 2X2 matrix of float) -0:396 determinant (global float) -0:396 'inF0' (in 2X2 matrix of float) -0:396 exp (global 2X2 matrix of float) -0:396 'inF0' (in 2X2 matrix of float) -0:396 exp2 (global 2X2 matrix of float) -0:396 'inF0' (in 2X2 matrix of float) -0:396 findMSB (global int) -0:396 Constant: -0:396 7 (const int) -0:396 findLSB (global int) -0:396 Constant: -0:396 7 (const int) -0:396 Floor (global 2X2 matrix of float) -0:396 'inF0' (in 2X2 matrix of float) -0:396 mod (global 2X2 matrix of float) -0:396 'inF0' (in 2X2 matrix of float) -0:396 'inF1' (in 2X2 matrix of float) -0:396 Fraction (global 2X2 matrix of float) -0:396 'inF0' (in 2X2 matrix of float) -0:396 frexp (global 2X2 matrix of float) -0:396 'inF0' (in 2X2 matrix of float) -0:396 'inF1' (in 2X2 matrix of float) -0:396 fwidth (global 2X2 matrix of float) -0:396 'inF0' (in 2X2 matrix of float) -0:396 ldexp (global 2X2 matrix of float) -0:396 'inF0' (in 2X2 matrix of float) -0:396 'inF1' (in 2X2 matrix of float) -0:396 log (global 2X2 matrix of float) -0:396 'inF0' (in 2X2 matrix of float) -0:396 matrix-scale (temp 2X2 matrix of float) -0:396 log2 (temp 2X2 matrix of float) -0:396 'inF0' (in 2X2 matrix of float) -0:396 Constant: -0:396 0.301030 -0:396 log2 (global 2X2 matrix of float) -0:396 'inF0' (in 2X2 matrix of float) -0:396 max (global 2X2 matrix of float) -0:396 'inF0' (in 2X2 matrix of float) -0:396 'inF1' (in 2X2 matrix of float) -0:396 min (global 2X2 matrix of float) -0:396 'inF0' (in 2X2 matrix of float) -0:396 'inF1' (in 2X2 matrix of float) -0:396 pow (global 2X2 matrix of float) -0:396 'inF0' (in 2X2 matrix of float) -0:396 'inF1' (in 2X2 matrix of float) -0:396 radians (global 2X2 matrix of float) -0:396 'inF0' (in 2X2 matrix of float) -0:396 roundEven (global 2X2 matrix of float) -0:396 'inF0' (in 2X2 matrix of float) -0:396 inverse sqrt (global 2X2 matrix of float) -0:396 'inF0' (in 2X2 matrix of float) -0:396 clamp (temp 2X2 matrix of float) -0:396 'inF0' (in 2X2 matrix of float) -0:396 Constant: -0:396 0.000000 -0:396 Constant: -0:396 1.000000 -0:396 Sign (global 2X2 matrix of float) -0:396 'inF0' (in 2X2 matrix of float) -0:396 sine (global 2X2 matrix of float) -0:396 'inF0' (in 2X2 matrix of float) -0:396 Sequence -0:396 move second child to first child (temp 2X2 matrix of float) -0:396 'inF1' (in 2X2 matrix of float) -0:396 sine (temp 2X2 matrix of float) -0:396 'inF0' (in 2X2 matrix of float) -0:396 move second child to first child (temp 2X2 matrix of float) -0:396 'inF2' (in 2X2 matrix of float) -0:396 cosine (temp 2X2 matrix of float) -0:396 'inF0' (in 2X2 matrix of float) -0:396 hyp. sine (global 2X2 matrix of float) -0:396 'inF0' (in 2X2 matrix of float) -0:396 smoothstep (global 2X2 matrix of float) -0:396 'inF0' (in 2X2 matrix of float) -0:396 'inF1' (in 2X2 matrix of float) -0:396 'inF2' (in 2X2 matrix of float) -0:396 sqrt (global 2X2 matrix of float) -0:396 'inF0' (in 2X2 matrix of float) -0:396 step (global 2X2 matrix of float) -0:396 'inF0' (in 2X2 matrix of float) -0:396 'inF1' (in 2X2 matrix of float) -0:396 tangent (global 2X2 matrix of float) -0:396 'inF0' (in 2X2 matrix of float) -0:396 hyp. tangent (global 2X2 matrix of float) -0:396 'inF0' (in 2X2 matrix of float) -0:396 transpose (global 2X2 matrix of float) -0:396 'inF0' (in 2X2 matrix of float) -0:396 trunc (global 2X2 matrix of float) -0:396 'inF0' (in 2X2 matrix of float) -0:399 Branch: Return with expression +0:402 Sequence +0:402 move second child to first child (temp bool) +0:402 'r000' (temp bool) +0:402 all (global bool) +0:402 'inF0' (in 2X2 matrix of float) +0:402 Sequence +0:402 move second child to first child (temp 2X2 matrix of float) +0:402 'r001' (temp 2X2 matrix of float) +0:402 Absolute value (global 2X2 matrix of float) +0:402 'inF0' (in 2X2 matrix of float) +0:402 arc cosine (global 2X2 matrix of float) +0:402 'inF0' (in 2X2 matrix of float) +0:402 Sequence +0:402 move second child to first child (temp bool) +0:402 'r003' (temp bool) +0:402 any (global bool) +0:402 'inF0' (in 2X2 matrix of float) +0:402 Sequence +0:402 move second child to first child (temp 2X2 matrix of float) +0:402 'r004' (temp 2X2 matrix of float) +0:402 arc sine (global 2X2 matrix of float) +0:402 'inF0' (in 2X2 matrix of float) +0:402 Sequence +0:402 move second child to first child (temp 2X2 matrix of float) +0:402 'r005' (temp 2X2 matrix of float) +0:402 arc tangent (global 2X2 matrix of float) +0:402 'inF0' (in 2X2 matrix of float) +0:402 Sequence +0:402 move second child to first child (temp 2X2 matrix of float) +0:402 'r006' (temp 2X2 matrix of float) +0:402 arc tangent (global 2X2 matrix of float) +0:402 'inF0' (in 2X2 matrix of float) +0:402 'inF1' (in 2X2 matrix of float) +0:402 Sequence +0:402 move second child to first child (temp 2X2 matrix of float) +0:402 'r007' (temp 2X2 matrix of float) +0:402 Ceiling (global 2X2 matrix of float) +0:402 'inF0' (in 2X2 matrix of float) +0:402 Test condition and select (temp void) +0:402 Condition +0:402 any (temp bool) +0:402 Compare Less Than (temp 2X2 matrix of bool) +0:402 'inF0' (in 2X2 matrix of float) +0:402 Constant: +0:402 0.000000 +0:402 0.000000 +0:402 0.000000 +0:402 0.000000 +0:402 true case +0:402 Branch: Kill +0:402 Sequence +0:402 move second child to first child (temp 2X2 matrix of float) +0:402 'r008' (temp 2X2 matrix of float) +0:402 clamp (global 2X2 matrix of float) +0:402 'inF0' (in 2X2 matrix of float) +0:402 'inF1' (in 2X2 matrix of float) +0:402 'inF2' (in 2X2 matrix of float) +0:402 Sequence +0:402 move second child to first child (temp 2X2 matrix of float) +0:402 'r009' (temp 2X2 matrix of float) +0:402 cosine (global 2X2 matrix of float) +0:402 'inF0' (in 2X2 matrix of float) +0:402 Sequence +0:402 move second child to first child (temp 2X2 matrix of float) +0:402 'r010' (temp 2X2 matrix of float) +0:402 hyp. cosine (global 2X2 matrix of float) +0:402 'inF0' (in 2X2 matrix of float) +0:402 Sequence +0:402 move second child to first child (temp 2X2 matrix of float) +0:402 'r011' (temp 2X2 matrix of float) +0:402 dPdx (global 2X2 matrix of float) +0:402 'inF0' (in 2X2 matrix of float) +0:402 Sequence +0:402 move second child to first child (temp 2X2 matrix of float) +0:402 'r012' (temp 2X2 matrix of float) +0:402 dPdxCoarse (global 2X2 matrix of float) +0:402 'inF0' (in 2X2 matrix of float) +0:402 Sequence +0:402 move second child to first child (temp 2X2 matrix of float) +0:402 'r013' (temp 2X2 matrix of float) +0:402 dPdxFine (global 2X2 matrix of float) +0:402 'inF0' (in 2X2 matrix of float) +0:402 Sequence +0:402 move second child to first child (temp 2X2 matrix of float) +0:402 'r014' (temp 2X2 matrix of float) +0:402 dPdy (global 2X2 matrix of float) +0:402 'inF0' (in 2X2 matrix of float) +0:402 Sequence +0:402 move second child to first child (temp 2X2 matrix of float) +0:402 'r015' (temp 2X2 matrix of float) +0:402 dPdyCoarse (global 2X2 matrix of float) +0:402 'inF0' (in 2X2 matrix of float) +0:402 Sequence +0:402 move second child to first child (temp 2X2 matrix of float) +0:402 'r016' (temp 2X2 matrix of float) +0:402 dPdyFine (global 2X2 matrix of float) +0:402 'inF0' (in 2X2 matrix of float) +0:402 Sequence +0:402 move second child to first child (temp 2X2 matrix of float) +0:402 'r017' (temp 2X2 matrix of float) +0:402 degrees (global 2X2 matrix of float) +0:402 'inF0' (in 2X2 matrix of float) +0:402 Sequence +0:402 move second child to first child (temp float) +0:402 'r018' (temp float) +0:402 determinant (global float) +0:402 'inF0' (in 2X2 matrix of float) +0:402 Sequence +0:402 move second child to first child (temp 2X2 matrix of float) +0:402 'r019' (temp 2X2 matrix of float) +0:402 exp (global 2X2 matrix of float) +0:402 'inF0' (in 2X2 matrix of float) +0:402 Sequence +0:402 move second child to first child (temp 2X2 matrix of float) +0:402 'R020' (temp 2X2 matrix of float) +0:402 exp2 (global 2X2 matrix of float) +0:402 'inF0' (in 2X2 matrix of float) +0:402 Sequence +0:402 move second child to first child (temp 2X2 matrix of float) +0:402 'r021' (temp 2X2 matrix of float) +0:402 Floor (global 2X2 matrix of float) +0:402 'inF0' (in 2X2 matrix of float) +0:402 Sequence +0:402 move second child to first child (temp 2X2 matrix of float) +0:402 'r022' (temp 2X2 matrix of float) +0:402 mod (global 2X2 matrix of float) +0:402 'inF0' (in 2X2 matrix of float) +0:402 'inF1' (in 2X2 matrix of float) +0:402 Sequence +0:402 move second child to first child (temp 2X2 matrix of float) +0:402 'r023' (temp 2X2 matrix of float) +0:402 Fraction (global 2X2 matrix of float) +0:402 'inF0' (in 2X2 matrix of float) +0:402 Sequence +0:402 move second child to first child (temp 2X2 matrix of float) +0:402 'r024' (temp 2X2 matrix of float) +0:402 frexp (global 2X2 matrix of float) +0:402 'inF0' (in 2X2 matrix of float) +0:402 'inF1' (in 2X2 matrix of float) +0:402 Sequence +0:402 move second child to first child (temp 2X2 matrix of float) +0:402 'r025' (temp 2X2 matrix of float) +0:402 fwidth (global 2X2 matrix of float) +0:402 'inF0' (in 2X2 matrix of float) +0:402 Sequence +0:402 move second child to first child (temp 2X2 matrix of float) +0:402 'r026' (temp 2X2 matrix of float) +0:402 ldexp (global 2X2 matrix of float) +0:402 'inF0' (in 2X2 matrix of float) +0:402 'inF1' (in 2X2 matrix of float) +0:402 Sequence +0:402 move second child to first child (temp 2X2 matrix of float) +0:402 'r026a' (temp 2X2 matrix of float) +0:402 mix (global 2X2 matrix of float) +0:402 'inF0' (in 2X2 matrix of float) +0:402 'inF1' (in 2X2 matrix of float) +0:402 'inF2' (in 2X2 matrix of float) +0:402 Sequence +0:402 move second child to first child (temp 2X2 matrix of float) +0:402 'r027' (temp 2X2 matrix of float) +0:402 log (global 2X2 matrix of float) +0:402 'inF0' (in 2X2 matrix of float) +0:402 Sequence +0:402 move second child to first child (temp 2X2 matrix of float) +0:402 'r028' (temp 2X2 matrix of float) +0:402 matrix-scale (temp 2X2 matrix of float) +0:402 log2 (temp 2X2 matrix of float) +0:402 'inF0' (in 2X2 matrix of float) +0:402 Constant: +0:402 0.301030 +0:402 Sequence +0:402 move second child to first child (temp 2X2 matrix of float) +0:402 'r029' (temp 2X2 matrix of float) +0:402 log2 (global 2X2 matrix of float) +0:402 'inF0' (in 2X2 matrix of float) +0:402 Sequence +0:402 move second child to first child (temp 2X2 matrix of float) +0:402 'r030' (temp 2X2 matrix of float) +0:402 max (global 2X2 matrix of float) +0:402 'inF0' (in 2X2 matrix of float) +0:402 'inF1' (in 2X2 matrix of float) +0:402 Sequence +0:402 move second child to first child (temp 2X2 matrix of float) +0:402 'r031' (temp 2X2 matrix of float) +0:402 min (global 2X2 matrix of float) +0:402 'inF0' (in 2X2 matrix of float) +0:402 'inF1' (in 2X2 matrix of float) +0:402 Sequence +0:402 move second child to first child (temp 2X2 matrix of float) +0:402 'r032' (temp 2X2 matrix of float) +0:402 pow (global 2X2 matrix of float) +0:402 'inF0' (in 2X2 matrix of float) +0:402 'inF1' (in 2X2 matrix of float) +0:402 Sequence +0:402 move second child to first child (temp 2X2 matrix of float) +0:402 'r033' (temp 2X2 matrix of float) +0:402 radians (global 2X2 matrix of float) +0:402 'inF0' (in 2X2 matrix of float) +0:402 Sequence +0:402 move second child to first child (temp 2X2 matrix of float) +0:402 'r034' (temp 2X2 matrix of float) +0:402 roundEven (global 2X2 matrix of float) +0:402 'inF0' (in 2X2 matrix of float) +0:402 Sequence +0:402 move second child to first child (temp 2X2 matrix of float) +0:402 'r035' (temp 2X2 matrix of float) +0:402 inverse sqrt (global 2X2 matrix of float) +0:402 'inF0' (in 2X2 matrix of float) +0:402 Sequence +0:402 move second child to first child (temp 2X2 matrix of float) +0:402 'r036' (temp 2X2 matrix of float) +0:402 clamp (temp 2X2 matrix of float) +0:402 'inF0' (in 2X2 matrix of float) +0:402 Constant: +0:402 0.000000 +0:402 Constant: +0:402 1.000000 +0:402 Sequence +0:402 move second child to first child (temp 2X2 matrix of float) +0:402 'r037' (temp 2X2 matrix of float) +0:402 Sign (global 2X2 matrix of float) +0:402 'inF0' (in 2X2 matrix of float) +0:402 Sequence +0:402 move second child to first child (temp 2X2 matrix of float) +0:402 'r038' (temp 2X2 matrix of float) +0:402 sine (global 2X2 matrix of float) +0:402 'inF0' (in 2X2 matrix of float) +0:402 Sequence +0:402 move second child to first child (temp 2X2 matrix of float) +0:402 'inF1' (in 2X2 matrix of float) +0:402 sine (temp 2X2 matrix of float) +0:402 'inF0' (in 2X2 matrix of float) +0:402 move second child to first child (temp 2X2 matrix of float) +0:402 'inF2' (in 2X2 matrix of float) +0:402 cosine (temp 2X2 matrix of float) +0:402 'inF0' (in 2X2 matrix of float) +0:402 Sequence +0:402 move second child to first child (temp 2X2 matrix of float) +0:402 'r039' (temp 2X2 matrix of float) +0:402 hyp. sine (global 2X2 matrix of float) +0:402 'inF0' (in 2X2 matrix of float) +0:402 Sequence +0:402 move second child to first child (temp 2X2 matrix of float) +0:402 'r049' (temp 2X2 matrix of float) +0:402 smoothstep (global 2X2 matrix of float) +0:402 'inF0' (in 2X2 matrix of float) +0:402 'inF1' (in 2X2 matrix of float) +0:402 'inF2' (in 2X2 matrix of float) +0:402 Sequence +0:402 move second child to first child (temp 2X2 matrix of float) +0:402 'r041' (temp 2X2 matrix of float) +0:402 sqrt (global 2X2 matrix of float) +0:402 'inF0' (in 2X2 matrix of float) +0:402 Sequence +0:402 move second child to first child (temp 2X2 matrix of float) +0:402 'r042' (temp 2X2 matrix of float) +0:402 step (global 2X2 matrix of float) +0:402 'inF0' (in 2X2 matrix of float) +0:402 'inF1' (in 2X2 matrix of float) +0:402 Sequence +0:402 move second child to first child (temp 2X2 matrix of float) +0:402 'r043' (temp 2X2 matrix of float) +0:402 tangent (global 2X2 matrix of float) +0:402 'inF0' (in 2X2 matrix of float) +0:402 Sequence +0:402 move second child to first child (temp 2X2 matrix of float) +0:402 'r044' (temp 2X2 matrix of float) +0:402 hyp. tangent (global 2X2 matrix of float) +0:402 'inF0' (in 2X2 matrix of float) +0:402 transpose (global 2X2 matrix of float) +0:402 'inF0' (in 2X2 matrix of float) +0:402 Sequence +0:402 move second child to first child (temp 2X2 matrix of float) +0:402 'r046' (temp 2X2 matrix of float) +0:402 trunc (global 2X2 matrix of float) +0:402 'inF0' (in 2X2 matrix of float) +0:405 Branch: Return with expression 0:? Constant: 0:? 2.000000 0:? 2.000000 0:? 2.000000 0:? 2.000000 -0:411 Function Definition: PixelShaderFunction(mf33;mf33;mf33; (temp 3X3 matrix of float) -0:403 Function Parameters: -0:403 'inF0' (in 3X3 matrix of float) -0:403 'inF1' (in 3X3 matrix of float) -0:403 'inF2' (in 3X3 matrix of float) +0:417 Function Definition: PixelShaderFunction3x3(mf33;mf33;mf33; (global 3X3 matrix of float) +0:409 Function Parameters: +0:409 'inF0' (in 3X3 matrix of float) +0:409 'inF1' (in 3X3 matrix of float) +0:409 'inF2' (in 3X3 matrix of float) 0:? Sequence -0:405 all (global bool) -0:405 'inF0' (in 3X3 matrix of float) -0:405 Absolute value (global 3X3 matrix of float) -0:405 'inF0' (in 3X3 matrix of float) -0:405 arc cosine (global 3X3 matrix of float) -0:405 'inF0' (in 3X3 matrix of float) -0:405 any (global bool) -0:405 'inF0' (in 3X3 matrix of float) -0:405 arc sine (global 3X3 matrix of float) -0:405 'inF0' (in 3X3 matrix of float) -0:405 arc tangent (global 3X3 matrix of float) -0:405 'inF0' (in 3X3 matrix of float) -0:405 arc tangent (global 3X3 matrix of float) -0:405 'inF0' (in 3X3 matrix of float) -0:405 'inF1' (in 3X3 matrix of float) -0:405 Ceiling (global 3X3 matrix of float) -0:405 'inF0' (in 3X3 matrix of float) -0:405 Test condition and select (temp void) -0:405 Condition -0:405 any (temp bool) -0:405 Compare Less Than (temp 3X3 matrix of bool) -0:405 'inF0' (in 3X3 matrix of float) -0:405 Constant: -0:405 0.000000 -0:405 0.000000 -0:405 0.000000 -0:405 0.000000 -0:405 0.000000 -0:405 0.000000 -0:405 0.000000 -0:405 0.000000 -0:405 0.000000 -0:405 true case -0:405 Branch: Kill -0:405 clamp (global 3X3 matrix of float) -0:405 'inF0' (in 3X3 matrix of float) -0:405 'inF1' (in 3X3 matrix of float) -0:405 'inF2' (in 3X3 matrix of float) -0:405 cosine (global 3X3 matrix of float) -0:405 'inF0' (in 3X3 matrix of float) -0:405 hyp. cosine (global 3X3 matrix of float) -0:405 'inF0' (in 3X3 matrix of float) -0:405 dPdx (global 3X3 matrix of float) -0:405 'inF0' (in 3X3 matrix of float) -0:405 dPdxCoarse (global 3X3 matrix of float) -0:405 'inF0' (in 3X3 matrix of float) -0:405 dPdxFine (global 3X3 matrix of float) -0:405 'inF0' (in 3X3 matrix of float) -0:405 dPdy (global 3X3 matrix of float) -0:405 'inF0' (in 3X3 matrix of float) -0:405 dPdyCoarse (global 3X3 matrix of float) -0:405 'inF0' (in 3X3 matrix of float) -0:405 dPdyFine (global 3X3 matrix of float) -0:405 'inF0' (in 3X3 matrix of float) -0:405 degrees (global 3X3 matrix of float) -0:405 'inF0' (in 3X3 matrix of float) -0:405 determinant (global float) -0:405 'inF0' (in 3X3 matrix of float) -0:405 exp (global 3X3 matrix of float) -0:405 'inF0' (in 3X3 matrix of float) -0:405 exp2 (global 3X3 matrix of float) -0:405 'inF0' (in 3X3 matrix of float) -0:405 findMSB (global int) -0:405 Constant: -0:405 7 (const int) -0:405 findLSB (global int) -0:405 Constant: -0:405 7 (const int) -0:405 Floor (global 3X3 matrix of float) -0:405 'inF0' (in 3X3 matrix of float) -0:405 mod (global 3X3 matrix of float) -0:405 'inF0' (in 3X3 matrix of float) -0:405 'inF1' (in 3X3 matrix of float) -0:405 Fraction (global 3X3 matrix of float) -0:405 'inF0' (in 3X3 matrix of float) -0:405 frexp (global 3X3 matrix of float) -0:405 'inF0' (in 3X3 matrix of float) -0:405 'inF1' (in 3X3 matrix of float) -0:405 fwidth (global 3X3 matrix of float) -0:405 'inF0' (in 3X3 matrix of float) -0:405 ldexp (global 3X3 matrix of float) -0:405 'inF0' (in 3X3 matrix of float) -0:405 'inF1' (in 3X3 matrix of float) -0:405 log (global 3X3 matrix of float) -0:405 'inF0' (in 3X3 matrix of float) -0:405 matrix-scale (temp 3X3 matrix of float) -0:405 log2 (temp 3X3 matrix of float) -0:405 'inF0' (in 3X3 matrix of float) -0:405 Constant: -0:405 0.301030 -0:405 log2 (global 3X3 matrix of float) -0:405 'inF0' (in 3X3 matrix of float) -0:405 max (global 3X3 matrix of float) -0:405 'inF0' (in 3X3 matrix of float) -0:405 'inF1' (in 3X3 matrix of float) -0:405 min (global 3X3 matrix of float) -0:405 'inF0' (in 3X3 matrix of float) -0:405 'inF1' (in 3X3 matrix of float) -0:405 pow (global 3X3 matrix of float) -0:405 'inF0' (in 3X3 matrix of float) -0:405 'inF1' (in 3X3 matrix of float) -0:405 radians (global 3X3 matrix of float) -0:405 'inF0' (in 3X3 matrix of float) -0:405 roundEven (global 3X3 matrix of float) -0:405 'inF0' (in 3X3 matrix of float) -0:405 inverse sqrt (global 3X3 matrix of float) -0:405 'inF0' (in 3X3 matrix of float) -0:405 clamp (temp 3X3 matrix of float) -0:405 'inF0' (in 3X3 matrix of float) -0:405 Constant: -0:405 0.000000 -0:405 Constant: -0:405 1.000000 -0:405 Sign (global 3X3 matrix of float) -0:405 'inF0' (in 3X3 matrix of float) -0:405 sine (global 3X3 matrix of float) -0:405 'inF0' (in 3X3 matrix of float) -0:405 Sequence -0:405 move second child to first child (temp 3X3 matrix of float) -0:405 'inF1' (in 3X3 matrix of float) -0:405 sine (temp 3X3 matrix of float) -0:405 'inF0' (in 3X3 matrix of float) -0:405 move second child to first child (temp 3X3 matrix of float) -0:405 'inF2' (in 3X3 matrix of float) -0:405 cosine (temp 3X3 matrix of float) -0:405 'inF0' (in 3X3 matrix of float) -0:405 hyp. sine (global 3X3 matrix of float) -0:405 'inF0' (in 3X3 matrix of float) -0:405 smoothstep (global 3X3 matrix of float) -0:405 'inF0' (in 3X3 matrix of float) -0:405 'inF1' (in 3X3 matrix of float) -0:405 'inF2' (in 3X3 matrix of float) -0:405 sqrt (global 3X3 matrix of float) -0:405 'inF0' (in 3X3 matrix of float) -0:405 step (global 3X3 matrix of float) -0:405 'inF0' (in 3X3 matrix of float) -0:405 'inF1' (in 3X3 matrix of float) -0:405 tangent (global 3X3 matrix of float) -0:405 'inF0' (in 3X3 matrix of float) -0:405 hyp. tangent (global 3X3 matrix of float) -0:405 'inF0' (in 3X3 matrix of float) -0:405 transpose (global 3X3 matrix of float) -0:405 'inF0' (in 3X3 matrix of float) -0:405 trunc (global 3X3 matrix of float) -0:405 'inF0' (in 3X3 matrix of float) -0:408 Branch: Return with expression +0:411 Sequence +0:411 move second child to first child (temp bool) +0:411 'r000' (temp bool) +0:411 all (global bool) +0:411 'inF0' (in 3X3 matrix of float) +0:411 Sequence +0:411 move second child to first child (temp 3X3 matrix of float) +0:411 'r001' (temp 3X3 matrix of float) +0:411 Absolute value (global 3X3 matrix of float) +0:411 'inF0' (in 3X3 matrix of float) +0:411 arc cosine (global 3X3 matrix of float) +0:411 'inF0' (in 3X3 matrix of float) +0:411 Sequence +0:411 move second child to first child (temp bool) +0:411 'r003' (temp bool) +0:411 any (global bool) +0:411 'inF0' (in 3X3 matrix of float) +0:411 Sequence +0:411 move second child to first child (temp 3X3 matrix of float) +0:411 'r004' (temp 3X3 matrix of float) +0:411 arc sine (global 3X3 matrix of float) +0:411 'inF0' (in 3X3 matrix of float) +0:411 Sequence +0:411 move second child to first child (temp 3X3 matrix of float) +0:411 'r005' (temp 3X3 matrix of float) +0:411 arc tangent (global 3X3 matrix of float) +0:411 'inF0' (in 3X3 matrix of float) +0:411 Sequence +0:411 move second child to first child (temp 3X3 matrix of float) +0:411 'r006' (temp 3X3 matrix of float) +0:411 arc tangent (global 3X3 matrix of float) +0:411 'inF0' (in 3X3 matrix of float) +0:411 'inF1' (in 3X3 matrix of float) +0:411 Sequence +0:411 move second child to first child (temp 3X3 matrix of float) +0:411 'r007' (temp 3X3 matrix of float) +0:411 Ceiling (global 3X3 matrix of float) +0:411 'inF0' (in 3X3 matrix of float) +0:411 Test condition and select (temp void) +0:411 Condition +0:411 any (temp bool) +0:411 Compare Less Than (temp 3X3 matrix of bool) +0:411 'inF0' (in 3X3 matrix of float) +0:411 Constant: +0:411 0.000000 +0:411 0.000000 +0:411 0.000000 +0:411 0.000000 +0:411 0.000000 +0:411 0.000000 +0:411 0.000000 +0:411 0.000000 +0:411 0.000000 +0:411 true case +0:411 Branch: Kill +0:411 Sequence +0:411 move second child to first child (temp 3X3 matrix of float) +0:411 'r008' (temp 3X3 matrix of float) +0:411 clamp (global 3X3 matrix of float) +0:411 'inF0' (in 3X3 matrix of float) +0:411 'inF1' (in 3X3 matrix of float) +0:411 'inF2' (in 3X3 matrix of float) +0:411 Sequence +0:411 move second child to first child (temp 3X3 matrix of float) +0:411 'r009' (temp 3X3 matrix of float) +0:411 cosine (global 3X3 matrix of float) +0:411 'inF0' (in 3X3 matrix of float) +0:411 Sequence +0:411 move second child to first child (temp 3X3 matrix of float) +0:411 'r010' (temp 3X3 matrix of float) +0:411 hyp. cosine (global 3X3 matrix of float) +0:411 'inF0' (in 3X3 matrix of float) +0:411 Sequence +0:411 move second child to first child (temp 3X3 matrix of float) +0:411 'r011' (temp 3X3 matrix of float) +0:411 dPdx (global 3X3 matrix of float) +0:411 'inF0' (in 3X3 matrix of float) +0:411 Sequence +0:411 move second child to first child (temp 3X3 matrix of float) +0:411 'r012' (temp 3X3 matrix of float) +0:411 dPdxCoarse (global 3X3 matrix of float) +0:411 'inF0' (in 3X3 matrix of float) +0:411 Sequence +0:411 move second child to first child (temp 3X3 matrix of float) +0:411 'r013' (temp 3X3 matrix of float) +0:411 dPdxFine (global 3X3 matrix of float) +0:411 'inF0' (in 3X3 matrix of float) +0:411 Sequence +0:411 move second child to first child (temp 3X3 matrix of float) +0:411 'r014' (temp 3X3 matrix of float) +0:411 dPdy (global 3X3 matrix of float) +0:411 'inF0' (in 3X3 matrix of float) +0:411 Sequence +0:411 move second child to first child (temp 3X3 matrix of float) +0:411 'r015' (temp 3X3 matrix of float) +0:411 dPdyCoarse (global 3X3 matrix of float) +0:411 'inF0' (in 3X3 matrix of float) +0:411 Sequence +0:411 move second child to first child (temp 3X3 matrix of float) +0:411 'r016' (temp 3X3 matrix of float) +0:411 dPdyFine (global 3X3 matrix of float) +0:411 'inF0' (in 3X3 matrix of float) +0:411 Sequence +0:411 move second child to first child (temp 3X3 matrix of float) +0:411 'r017' (temp 3X3 matrix of float) +0:411 degrees (global 3X3 matrix of float) +0:411 'inF0' (in 3X3 matrix of float) +0:411 Sequence +0:411 move second child to first child (temp float) +0:411 'r018' (temp float) +0:411 determinant (global float) +0:411 'inF0' (in 3X3 matrix of float) +0:411 Sequence +0:411 move second child to first child (temp 3X3 matrix of float) +0:411 'r019' (temp 3X3 matrix of float) +0:411 exp (global 3X3 matrix of float) +0:411 'inF0' (in 3X3 matrix of float) +0:411 Sequence +0:411 move second child to first child (temp 3X3 matrix of float) +0:411 'R020' (temp 3X3 matrix of float) +0:411 exp2 (global 3X3 matrix of float) +0:411 'inF0' (in 3X3 matrix of float) +0:411 Sequence +0:411 move second child to first child (temp 3X3 matrix of float) +0:411 'r021' (temp 3X3 matrix of float) +0:411 Floor (global 3X3 matrix of float) +0:411 'inF0' (in 3X3 matrix of float) +0:411 Sequence +0:411 move second child to first child (temp 3X3 matrix of float) +0:411 'r022' (temp 3X3 matrix of float) +0:411 mod (global 3X3 matrix of float) +0:411 'inF0' (in 3X3 matrix of float) +0:411 'inF1' (in 3X3 matrix of float) +0:411 Sequence +0:411 move second child to first child (temp 3X3 matrix of float) +0:411 'r023' (temp 3X3 matrix of float) +0:411 Fraction (global 3X3 matrix of float) +0:411 'inF0' (in 3X3 matrix of float) +0:411 Sequence +0:411 move second child to first child (temp 3X3 matrix of float) +0:411 'r024' (temp 3X3 matrix of float) +0:411 frexp (global 3X3 matrix of float) +0:411 'inF0' (in 3X3 matrix of float) +0:411 'inF1' (in 3X3 matrix of float) +0:411 Sequence +0:411 move second child to first child (temp 3X3 matrix of float) +0:411 'r025' (temp 3X3 matrix of float) +0:411 fwidth (global 3X3 matrix of float) +0:411 'inF0' (in 3X3 matrix of float) +0:411 Sequence +0:411 move second child to first child (temp 3X3 matrix of float) +0:411 'r026' (temp 3X3 matrix of float) +0:411 ldexp (global 3X3 matrix of float) +0:411 'inF0' (in 3X3 matrix of float) +0:411 'inF1' (in 3X3 matrix of float) +0:411 Sequence +0:411 move second child to first child (temp 3X3 matrix of float) +0:411 'r026a' (temp 3X3 matrix of float) +0:411 mix (global 3X3 matrix of float) +0:411 'inF0' (in 3X3 matrix of float) +0:411 'inF1' (in 3X3 matrix of float) +0:411 'inF2' (in 3X3 matrix of float) +0:411 Sequence +0:411 move second child to first child (temp 3X3 matrix of float) +0:411 'r027' (temp 3X3 matrix of float) +0:411 log (global 3X3 matrix of float) +0:411 'inF0' (in 3X3 matrix of float) +0:411 Sequence +0:411 move second child to first child (temp 3X3 matrix of float) +0:411 'r028' (temp 3X3 matrix of float) +0:411 matrix-scale (temp 3X3 matrix of float) +0:411 log2 (temp 3X3 matrix of float) +0:411 'inF0' (in 3X3 matrix of float) +0:411 Constant: +0:411 0.301030 +0:411 Sequence +0:411 move second child to first child (temp 3X3 matrix of float) +0:411 'r029' (temp 3X3 matrix of float) +0:411 log2 (global 3X3 matrix of float) +0:411 'inF0' (in 3X3 matrix of float) +0:411 Sequence +0:411 move second child to first child (temp 3X3 matrix of float) +0:411 'r030' (temp 3X3 matrix of float) +0:411 max (global 3X3 matrix of float) +0:411 'inF0' (in 3X3 matrix of float) +0:411 'inF1' (in 3X3 matrix of float) +0:411 Sequence +0:411 move second child to first child (temp 3X3 matrix of float) +0:411 'r031' (temp 3X3 matrix of float) +0:411 min (global 3X3 matrix of float) +0:411 'inF0' (in 3X3 matrix of float) +0:411 'inF1' (in 3X3 matrix of float) +0:411 Sequence +0:411 move second child to first child (temp 3X3 matrix of float) +0:411 'r032' (temp 3X3 matrix of float) +0:411 pow (global 3X3 matrix of float) +0:411 'inF0' (in 3X3 matrix of float) +0:411 'inF1' (in 3X3 matrix of float) +0:411 Sequence +0:411 move second child to first child (temp 3X3 matrix of float) +0:411 'r033' (temp 3X3 matrix of float) +0:411 radians (global 3X3 matrix of float) +0:411 'inF0' (in 3X3 matrix of float) +0:411 Sequence +0:411 move second child to first child (temp 3X3 matrix of float) +0:411 'r034' (temp 3X3 matrix of float) +0:411 roundEven (global 3X3 matrix of float) +0:411 'inF0' (in 3X3 matrix of float) +0:411 Sequence +0:411 move second child to first child (temp 3X3 matrix of float) +0:411 'r035' (temp 3X3 matrix of float) +0:411 inverse sqrt (global 3X3 matrix of float) +0:411 'inF0' (in 3X3 matrix of float) +0:411 Sequence +0:411 move second child to first child (temp 3X3 matrix of float) +0:411 'r036' (temp 3X3 matrix of float) +0:411 clamp (temp 3X3 matrix of float) +0:411 'inF0' (in 3X3 matrix of float) +0:411 Constant: +0:411 0.000000 +0:411 Constant: +0:411 1.000000 +0:411 Sequence +0:411 move second child to first child (temp 3X3 matrix of float) +0:411 'r037' (temp 3X3 matrix of float) +0:411 Sign (global 3X3 matrix of float) +0:411 'inF0' (in 3X3 matrix of float) +0:411 Sequence +0:411 move second child to first child (temp 3X3 matrix of float) +0:411 'r038' (temp 3X3 matrix of float) +0:411 sine (global 3X3 matrix of float) +0:411 'inF0' (in 3X3 matrix of float) +0:411 Sequence +0:411 move second child to first child (temp 3X3 matrix of float) +0:411 'inF1' (in 3X3 matrix of float) +0:411 sine (temp 3X3 matrix of float) +0:411 'inF0' (in 3X3 matrix of float) +0:411 move second child to first child (temp 3X3 matrix of float) +0:411 'inF2' (in 3X3 matrix of float) +0:411 cosine (temp 3X3 matrix of float) +0:411 'inF0' (in 3X3 matrix of float) +0:411 Sequence +0:411 move second child to first child (temp 3X3 matrix of float) +0:411 'r039' (temp 3X3 matrix of float) +0:411 hyp. sine (global 3X3 matrix of float) +0:411 'inF0' (in 3X3 matrix of float) +0:411 Sequence +0:411 move second child to first child (temp 3X3 matrix of float) +0:411 'r049' (temp 3X3 matrix of float) +0:411 smoothstep (global 3X3 matrix of float) +0:411 'inF0' (in 3X3 matrix of float) +0:411 'inF1' (in 3X3 matrix of float) +0:411 'inF2' (in 3X3 matrix of float) +0:411 Sequence +0:411 move second child to first child (temp 3X3 matrix of float) +0:411 'r041' (temp 3X3 matrix of float) +0:411 sqrt (global 3X3 matrix of float) +0:411 'inF0' (in 3X3 matrix of float) +0:411 Sequence +0:411 move second child to first child (temp 3X3 matrix of float) +0:411 'r042' (temp 3X3 matrix of float) +0:411 step (global 3X3 matrix of float) +0:411 'inF0' (in 3X3 matrix of float) +0:411 'inF1' (in 3X3 matrix of float) +0:411 Sequence +0:411 move second child to first child (temp 3X3 matrix of float) +0:411 'r043' (temp 3X3 matrix of float) +0:411 tangent (global 3X3 matrix of float) +0:411 'inF0' (in 3X3 matrix of float) +0:411 Sequence +0:411 move second child to first child (temp 3X3 matrix of float) +0:411 'r044' (temp 3X3 matrix of float) +0:411 hyp. tangent (global 3X3 matrix of float) +0:411 'inF0' (in 3X3 matrix of float) +0:411 transpose (global 3X3 matrix of float) +0:411 'inF0' (in 3X3 matrix of float) +0:411 Sequence +0:411 move second child to first child (temp 3X3 matrix of float) +0:411 'r046' (temp 3X3 matrix of float) +0:411 trunc (global 3X3 matrix of float) +0:411 'inF0' (in 3X3 matrix of float) +0:414 Branch: Return with expression 0:? Constant: 0:? 3.000000 0:? 3.000000 @@ -1093,165 +2136,301 @@ gl_FragCoord origin is upper left 0:? 3.000000 0:? 3.000000 0:? 3.000000 -0:432 Function Definition: PixelShaderFunction(mf44;mf44;mf44; (temp 4X4 matrix of float) -0:412 Function Parameters: -0:412 'inF0' (in 4X4 matrix of float) -0:412 'inF1' (in 4X4 matrix of float) -0:412 'inF2' (in 4X4 matrix of float) +0:438 Function Definition: PixelShaderFunction4x4(mf44;mf44;mf44; (global 4X4 matrix of float) +0:418 Function Parameters: +0:418 'inF0' (in 4X4 matrix of float) +0:418 'inF1' (in 4X4 matrix of float) +0:418 'inF2' (in 4X4 matrix of float) 0:? Sequence -0:414 all (global bool) -0:414 'inF0' (in 4X4 matrix of float) -0:414 Absolute value (global 4X4 matrix of float) -0:414 'inF0' (in 4X4 matrix of float) -0:414 arc cosine (global 4X4 matrix of float) -0:414 'inF0' (in 4X4 matrix of float) -0:414 any (global bool) -0:414 'inF0' (in 4X4 matrix of float) -0:414 arc sine (global 4X4 matrix of float) -0:414 'inF0' (in 4X4 matrix of float) -0:414 arc tangent (global 4X4 matrix of float) -0:414 'inF0' (in 4X4 matrix of float) -0:414 arc tangent (global 4X4 matrix of float) -0:414 'inF0' (in 4X4 matrix of float) -0:414 'inF1' (in 4X4 matrix of float) -0:414 Ceiling (global 4X4 matrix of float) -0:414 'inF0' (in 4X4 matrix of float) -0:414 Test condition and select (temp void) -0:414 Condition -0:414 any (temp bool) -0:414 Compare Less Than (temp 4X4 matrix of bool) -0:414 'inF0' (in 4X4 matrix of float) -0:414 Constant: -0:414 0.000000 -0:414 0.000000 -0:414 0.000000 -0:414 0.000000 -0:414 0.000000 -0:414 0.000000 -0:414 0.000000 -0:414 0.000000 -0:414 0.000000 -0:414 0.000000 -0:414 0.000000 -0:414 0.000000 -0:414 0.000000 -0:414 0.000000 -0:414 0.000000 -0:414 0.000000 -0:414 true case -0:414 Branch: Kill -0:414 clamp (global 4X4 matrix of float) -0:414 'inF0' (in 4X4 matrix of float) -0:414 'inF1' (in 4X4 matrix of float) -0:414 'inF2' (in 4X4 matrix of float) -0:414 cosine (global 4X4 matrix of float) -0:414 'inF0' (in 4X4 matrix of float) -0:414 hyp. cosine (global 4X4 matrix of float) -0:414 'inF0' (in 4X4 matrix of float) -0:414 dPdx (global 4X4 matrix of float) -0:414 'inF0' (in 4X4 matrix of float) -0:414 dPdxCoarse (global 4X4 matrix of float) -0:414 'inF0' (in 4X4 matrix of float) -0:414 dPdxFine (global 4X4 matrix of float) -0:414 'inF0' (in 4X4 matrix of float) -0:414 dPdy (global 4X4 matrix of float) -0:414 'inF0' (in 4X4 matrix of float) -0:414 dPdyCoarse (global 4X4 matrix of float) -0:414 'inF0' (in 4X4 matrix of float) -0:414 dPdyFine (global 4X4 matrix of float) -0:414 'inF0' (in 4X4 matrix of float) -0:414 degrees (global 4X4 matrix of float) -0:414 'inF0' (in 4X4 matrix of float) -0:414 determinant (global float) -0:414 'inF0' (in 4X4 matrix of float) -0:414 exp (global 4X4 matrix of float) -0:414 'inF0' (in 4X4 matrix of float) -0:414 exp2 (global 4X4 matrix of float) -0:414 'inF0' (in 4X4 matrix of float) -0:414 findMSB (global int) -0:414 Constant: -0:414 7 (const int) -0:414 findLSB (global int) -0:414 Constant: -0:414 7 (const int) -0:414 Floor (global 4X4 matrix of float) -0:414 'inF0' (in 4X4 matrix of float) -0:414 mod (global 4X4 matrix of float) -0:414 'inF0' (in 4X4 matrix of float) -0:414 'inF1' (in 4X4 matrix of float) -0:414 Fraction (global 4X4 matrix of float) -0:414 'inF0' (in 4X4 matrix of float) -0:414 frexp (global 4X4 matrix of float) -0:414 'inF0' (in 4X4 matrix of float) -0:414 'inF1' (in 4X4 matrix of float) -0:414 fwidth (global 4X4 matrix of float) -0:414 'inF0' (in 4X4 matrix of float) -0:414 ldexp (global 4X4 matrix of float) -0:414 'inF0' (in 4X4 matrix of float) -0:414 'inF1' (in 4X4 matrix of float) -0:414 log (global 4X4 matrix of float) -0:414 'inF0' (in 4X4 matrix of float) -0:414 matrix-scale (temp 4X4 matrix of float) -0:414 log2 (temp 4X4 matrix of float) -0:414 'inF0' (in 4X4 matrix of float) -0:414 Constant: -0:414 0.301030 -0:414 log2 (global 4X4 matrix of float) -0:414 'inF0' (in 4X4 matrix of float) -0:414 max (global 4X4 matrix of float) -0:414 'inF0' (in 4X4 matrix of float) -0:414 'inF1' (in 4X4 matrix of float) -0:414 min (global 4X4 matrix of float) -0:414 'inF0' (in 4X4 matrix of float) -0:414 'inF1' (in 4X4 matrix of float) -0:414 pow (global 4X4 matrix of float) -0:414 'inF0' (in 4X4 matrix of float) -0:414 'inF1' (in 4X4 matrix of float) -0:414 radians (global 4X4 matrix of float) -0:414 'inF0' (in 4X4 matrix of float) -0:414 roundEven (global 4X4 matrix of float) -0:414 'inF0' (in 4X4 matrix of float) -0:414 inverse sqrt (global 4X4 matrix of float) -0:414 'inF0' (in 4X4 matrix of float) -0:414 clamp (temp 4X4 matrix of float) -0:414 'inF0' (in 4X4 matrix of float) -0:414 Constant: -0:414 0.000000 -0:414 Constant: -0:414 1.000000 -0:414 Sign (global 4X4 matrix of float) -0:414 'inF0' (in 4X4 matrix of float) -0:414 sine (global 4X4 matrix of float) -0:414 'inF0' (in 4X4 matrix of float) -0:414 Sequence -0:414 move second child to first child (temp 4X4 matrix of float) -0:414 'inF1' (in 4X4 matrix of float) -0:414 sine (temp 4X4 matrix of float) -0:414 'inF0' (in 4X4 matrix of float) -0:414 move second child to first child (temp 4X4 matrix of float) -0:414 'inF2' (in 4X4 matrix of float) -0:414 cosine (temp 4X4 matrix of float) -0:414 'inF0' (in 4X4 matrix of float) -0:414 hyp. sine (global 4X4 matrix of float) -0:414 'inF0' (in 4X4 matrix of float) -0:414 smoothstep (global 4X4 matrix of float) -0:414 'inF0' (in 4X4 matrix of float) -0:414 'inF1' (in 4X4 matrix of float) -0:414 'inF2' (in 4X4 matrix of float) -0:414 sqrt (global 4X4 matrix of float) -0:414 'inF0' (in 4X4 matrix of float) -0:414 step (global 4X4 matrix of float) -0:414 'inF0' (in 4X4 matrix of float) -0:414 'inF1' (in 4X4 matrix of float) -0:414 tangent (global 4X4 matrix of float) -0:414 'inF0' (in 4X4 matrix of float) -0:414 hyp. tangent (global 4X4 matrix of float) -0:414 'inF0' (in 4X4 matrix of float) -0:414 transpose (global 4X4 matrix of float) -0:414 'inF0' (in 4X4 matrix of float) -0:414 trunc (global 4X4 matrix of float) -0:414 'inF0' (in 4X4 matrix of float) -0:417 Branch: Return with expression +0:420 Sequence +0:420 move second child to first child (temp bool) +0:420 'r000' (temp bool) +0:420 all (global bool) +0:420 'inF0' (in 4X4 matrix of float) +0:420 Sequence +0:420 move second child to first child (temp 4X4 matrix of float) +0:420 'r001' (temp 4X4 matrix of float) +0:420 Absolute value (global 4X4 matrix of float) +0:420 'inF0' (in 4X4 matrix of float) +0:420 arc cosine (global 4X4 matrix of float) +0:420 'inF0' (in 4X4 matrix of float) +0:420 Sequence +0:420 move second child to first child (temp bool) +0:420 'r003' (temp bool) +0:420 any (global bool) +0:420 'inF0' (in 4X4 matrix of float) +0:420 Sequence +0:420 move second child to first child (temp 4X4 matrix of float) +0:420 'r004' (temp 4X4 matrix of float) +0:420 arc sine (global 4X4 matrix of float) +0:420 'inF0' (in 4X4 matrix of float) +0:420 Sequence +0:420 move second child to first child (temp 4X4 matrix of float) +0:420 'r005' (temp 4X4 matrix of float) +0:420 arc tangent (global 4X4 matrix of float) +0:420 'inF0' (in 4X4 matrix of float) +0:420 Sequence +0:420 move second child to first child (temp 4X4 matrix of float) +0:420 'r006' (temp 4X4 matrix of float) +0:420 arc tangent (global 4X4 matrix of float) +0:420 'inF0' (in 4X4 matrix of float) +0:420 'inF1' (in 4X4 matrix of float) +0:420 Sequence +0:420 move second child to first child (temp 4X4 matrix of float) +0:420 'r007' (temp 4X4 matrix of float) +0:420 Ceiling (global 4X4 matrix of float) +0:420 'inF0' (in 4X4 matrix of float) +0:420 Test condition and select (temp void) +0:420 Condition +0:420 any (temp bool) +0:420 Compare Less Than (temp 4X4 matrix of bool) +0:420 'inF0' (in 4X4 matrix of float) +0:420 Constant: +0:420 0.000000 +0:420 0.000000 +0:420 0.000000 +0:420 0.000000 +0:420 0.000000 +0:420 0.000000 +0:420 0.000000 +0:420 0.000000 +0:420 0.000000 +0:420 0.000000 +0:420 0.000000 +0:420 0.000000 +0:420 0.000000 +0:420 0.000000 +0:420 0.000000 +0:420 0.000000 +0:420 true case +0:420 Branch: Kill +0:420 Sequence +0:420 move second child to first child (temp 4X4 matrix of float) +0:420 'r008' (temp 4X4 matrix of float) +0:420 clamp (global 4X4 matrix of float) +0:420 'inF0' (in 4X4 matrix of float) +0:420 'inF1' (in 4X4 matrix of float) +0:420 'inF2' (in 4X4 matrix of float) +0:420 Sequence +0:420 move second child to first child (temp 4X4 matrix of float) +0:420 'r009' (temp 4X4 matrix of float) +0:420 cosine (global 4X4 matrix of float) +0:420 'inF0' (in 4X4 matrix of float) +0:420 Sequence +0:420 move second child to first child (temp 4X4 matrix of float) +0:420 'r010' (temp 4X4 matrix of float) +0:420 hyp. cosine (global 4X4 matrix of float) +0:420 'inF0' (in 4X4 matrix of float) +0:420 Sequence +0:420 move second child to first child (temp 4X4 matrix of float) +0:420 'r011' (temp 4X4 matrix of float) +0:420 dPdx (global 4X4 matrix of float) +0:420 'inF0' (in 4X4 matrix of float) +0:420 Sequence +0:420 move second child to first child (temp 4X4 matrix of float) +0:420 'r012' (temp 4X4 matrix of float) +0:420 dPdxCoarse (global 4X4 matrix of float) +0:420 'inF0' (in 4X4 matrix of float) +0:420 Sequence +0:420 move second child to first child (temp 4X4 matrix of float) +0:420 'r013' (temp 4X4 matrix of float) +0:420 dPdxFine (global 4X4 matrix of float) +0:420 'inF0' (in 4X4 matrix of float) +0:420 Sequence +0:420 move second child to first child (temp 4X4 matrix of float) +0:420 'r014' (temp 4X4 matrix of float) +0:420 dPdy (global 4X4 matrix of float) +0:420 'inF0' (in 4X4 matrix of float) +0:420 Sequence +0:420 move second child to first child (temp 4X4 matrix of float) +0:420 'r015' (temp 4X4 matrix of float) +0:420 dPdyCoarse (global 4X4 matrix of float) +0:420 'inF0' (in 4X4 matrix of float) +0:420 Sequence +0:420 move second child to first child (temp 4X4 matrix of float) +0:420 'r016' (temp 4X4 matrix of float) +0:420 dPdyFine (global 4X4 matrix of float) +0:420 'inF0' (in 4X4 matrix of float) +0:420 Sequence +0:420 move second child to first child (temp 4X4 matrix of float) +0:420 'r017' (temp 4X4 matrix of float) +0:420 degrees (global 4X4 matrix of float) +0:420 'inF0' (in 4X4 matrix of float) +0:420 Sequence +0:420 move second child to first child (temp float) +0:420 'r018' (temp float) +0:420 determinant (global float) +0:420 'inF0' (in 4X4 matrix of float) +0:420 Sequence +0:420 move second child to first child (temp 4X4 matrix of float) +0:420 'r019' (temp 4X4 matrix of float) +0:420 exp (global 4X4 matrix of float) +0:420 'inF0' (in 4X4 matrix of float) +0:420 Sequence +0:420 move second child to first child (temp 4X4 matrix of float) +0:420 'R020' (temp 4X4 matrix of float) +0:420 exp2 (global 4X4 matrix of float) +0:420 'inF0' (in 4X4 matrix of float) +0:420 Sequence +0:420 move second child to first child (temp 4X4 matrix of float) +0:420 'r021' (temp 4X4 matrix of float) +0:420 Floor (global 4X4 matrix of float) +0:420 'inF0' (in 4X4 matrix of float) +0:420 Sequence +0:420 move second child to first child (temp 4X4 matrix of float) +0:420 'r022' (temp 4X4 matrix of float) +0:420 mod (global 4X4 matrix of float) +0:420 'inF0' (in 4X4 matrix of float) +0:420 'inF1' (in 4X4 matrix of float) +0:420 Sequence +0:420 move second child to first child (temp 4X4 matrix of float) +0:420 'r023' (temp 4X4 matrix of float) +0:420 Fraction (global 4X4 matrix of float) +0:420 'inF0' (in 4X4 matrix of float) +0:420 Sequence +0:420 move second child to first child (temp 4X4 matrix of float) +0:420 'r024' (temp 4X4 matrix of float) +0:420 frexp (global 4X4 matrix of float) +0:420 'inF0' (in 4X4 matrix of float) +0:420 'inF1' (in 4X4 matrix of float) +0:420 Sequence +0:420 move second child to first child (temp 4X4 matrix of float) +0:420 'r025' (temp 4X4 matrix of float) +0:420 fwidth (global 4X4 matrix of float) +0:420 'inF0' (in 4X4 matrix of float) +0:420 Sequence +0:420 move second child to first child (temp 4X4 matrix of float) +0:420 'r026' (temp 4X4 matrix of float) +0:420 ldexp (global 4X4 matrix of float) +0:420 'inF0' (in 4X4 matrix of float) +0:420 'inF1' (in 4X4 matrix of float) +0:420 Sequence +0:420 move second child to first child (temp 4X4 matrix of float) +0:420 'r026a' (temp 4X4 matrix of float) +0:420 mix (global 4X4 matrix of float) +0:420 'inF0' (in 4X4 matrix of float) +0:420 'inF1' (in 4X4 matrix of float) +0:420 'inF2' (in 4X4 matrix of float) +0:420 Sequence +0:420 move second child to first child (temp 4X4 matrix of float) +0:420 'r027' (temp 4X4 matrix of float) +0:420 log (global 4X4 matrix of float) +0:420 'inF0' (in 4X4 matrix of float) +0:420 Sequence +0:420 move second child to first child (temp 4X4 matrix of float) +0:420 'r028' (temp 4X4 matrix of float) +0:420 matrix-scale (temp 4X4 matrix of float) +0:420 log2 (temp 4X4 matrix of float) +0:420 'inF0' (in 4X4 matrix of float) +0:420 Constant: +0:420 0.301030 +0:420 Sequence +0:420 move second child to first child (temp 4X4 matrix of float) +0:420 'r029' (temp 4X4 matrix of float) +0:420 log2 (global 4X4 matrix of float) +0:420 'inF0' (in 4X4 matrix of float) +0:420 Sequence +0:420 move second child to first child (temp 4X4 matrix of float) +0:420 'r030' (temp 4X4 matrix of float) +0:420 max (global 4X4 matrix of float) +0:420 'inF0' (in 4X4 matrix of float) +0:420 'inF1' (in 4X4 matrix of float) +0:420 Sequence +0:420 move second child to first child (temp 4X4 matrix of float) +0:420 'r031' (temp 4X4 matrix of float) +0:420 min (global 4X4 matrix of float) +0:420 'inF0' (in 4X4 matrix of float) +0:420 'inF1' (in 4X4 matrix of float) +0:420 Sequence +0:420 move second child to first child (temp 4X4 matrix of float) +0:420 'r032' (temp 4X4 matrix of float) +0:420 pow (global 4X4 matrix of float) +0:420 'inF0' (in 4X4 matrix of float) +0:420 'inF1' (in 4X4 matrix of float) +0:420 Sequence +0:420 move second child to first child (temp 4X4 matrix of float) +0:420 'r033' (temp 4X4 matrix of float) +0:420 radians (global 4X4 matrix of float) +0:420 'inF0' (in 4X4 matrix of float) +0:420 Sequence +0:420 move second child to first child (temp 4X4 matrix of float) +0:420 'r034' (temp 4X4 matrix of float) +0:420 roundEven (global 4X4 matrix of float) +0:420 'inF0' (in 4X4 matrix of float) +0:420 Sequence +0:420 move second child to first child (temp 4X4 matrix of float) +0:420 'r035' (temp 4X4 matrix of float) +0:420 inverse sqrt (global 4X4 matrix of float) +0:420 'inF0' (in 4X4 matrix of float) +0:420 Sequence +0:420 move second child to first child (temp 4X4 matrix of float) +0:420 'r036' (temp 4X4 matrix of float) +0:420 clamp (temp 4X4 matrix of float) +0:420 'inF0' (in 4X4 matrix of float) +0:420 Constant: +0:420 0.000000 +0:420 Constant: +0:420 1.000000 +0:420 Sequence +0:420 move second child to first child (temp 4X4 matrix of float) +0:420 'r037' (temp 4X4 matrix of float) +0:420 Sign (global 4X4 matrix of float) +0:420 'inF0' (in 4X4 matrix of float) +0:420 Sequence +0:420 move second child to first child (temp 4X4 matrix of float) +0:420 'r038' (temp 4X4 matrix of float) +0:420 sine (global 4X4 matrix of float) +0:420 'inF0' (in 4X4 matrix of float) +0:420 Sequence +0:420 move second child to first child (temp 4X4 matrix of float) +0:420 'inF1' (in 4X4 matrix of float) +0:420 sine (temp 4X4 matrix of float) +0:420 'inF0' (in 4X4 matrix of float) +0:420 move second child to first child (temp 4X4 matrix of float) +0:420 'inF2' (in 4X4 matrix of float) +0:420 cosine (temp 4X4 matrix of float) +0:420 'inF0' (in 4X4 matrix of float) +0:420 Sequence +0:420 move second child to first child (temp 4X4 matrix of float) +0:420 'r039' (temp 4X4 matrix of float) +0:420 hyp. sine (global 4X4 matrix of float) +0:420 'inF0' (in 4X4 matrix of float) +0:420 Sequence +0:420 move second child to first child (temp 4X4 matrix of float) +0:420 'r049' (temp 4X4 matrix of float) +0:420 smoothstep (global 4X4 matrix of float) +0:420 'inF0' (in 4X4 matrix of float) +0:420 'inF1' (in 4X4 matrix of float) +0:420 'inF2' (in 4X4 matrix of float) +0:420 Sequence +0:420 move second child to first child (temp 4X4 matrix of float) +0:420 'r041' (temp 4X4 matrix of float) +0:420 sqrt (global 4X4 matrix of float) +0:420 'inF0' (in 4X4 matrix of float) +0:420 Sequence +0:420 move second child to first child (temp 4X4 matrix of float) +0:420 'r042' (temp 4X4 matrix of float) +0:420 step (global 4X4 matrix of float) +0:420 'inF0' (in 4X4 matrix of float) +0:420 'inF1' (in 4X4 matrix of float) +0:420 Sequence +0:420 move second child to first child (temp 4X4 matrix of float) +0:420 'r043' (temp 4X4 matrix of float) +0:420 tangent (global 4X4 matrix of float) +0:420 'inF0' (in 4X4 matrix of float) +0:420 Sequence +0:420 move second child to first child (temp 4X4 matrix of float) +0:420 'r044' (temp 4X4 matrix of float) +0:420 hyp. tangent (global 4X4 matrix of float) +0:420 'inF0' (in 4X4 matrix of float) +0:420 transpose (global 4X4 matrix of float) +0:420 'inF0' (in 4X4 matrix of float) +0:420 Sequence +0:420 move second child to first child (temp 4X4 matrix of float) +0:420 'r046' (temp 4X4 matrix of float) +0:420 trunc (global 4X4 matrix of float) +0:420 'inF0' (in 4X4 matrix of float) +0:423 Branch: Return with expression 0:? Constant: 0:? 4.000000 0:? 4.000000 @@ -1269,181 +2448,322 @@ gl_FragCoord origin is upper left 0:? 4.000000 0:? 4.000000 0:? 4.000000 -0:439 Function Definition: TestGenMul(f1;f1;vf2;vf2;mf22;mf22; (temp void) -0:435 Function Parameters: -0:435 'inF0' (in float) -0:435 'inF1' (in float) -0:435 'inFV0' (in 2-component vector of float) -0:435 'inFV1' (in 2-component vector of float) -0:435 'inFM0' (in 2X2 matrix of float) -0:435 'inFM1' (in 2X2 matrix of float) +0:445 Function Definition: TestGenMul2(f1;f1;vf2;vf2;mf22;mf22; (global void) +0:441 Function Parameters: +0:441 'inF0' (in float) +0:441 'inF1' (in float) +0:441 'inFV0' (in 2-component vector of float) +0:441 'inFV1' (in 2-component vector of float) +0:441 'inFM0' (in 2X2 matrix of float) +0:441 'inFM1' (in 2X2 matrix of float) 0:? Sequence -0:436 move second child to first child (temp float) -0:436 'r0' (temp float) -0:436 component-wise multiply (temp float) -0:436 'inF0' (in float) -0:436 'inF1' (in float) -0:436 move second child to first child (temp 2-component vector of float) -0:436 'r1' (temp 2-component vector of float) -0:436 vector-scale (temp 2-component vector of float) -0:436 'inFV0' (in 2-component vector of float) -0:436 'inF0' (in float) -0:436 move second child to first child (temp 2-component vector of float) -0:436 'r2' (temp 2-component vector of float) -0:436 vector-scale (temp 2-component vector of float) -0:436 'inF0' (in float) -0:436 'inFV0' (in 2-component vector of float) -0:436 move second child to first child (temp float) -0:436 'r3' (temp float) -0:436 dot-product (global float) -0:436 'inFV0' (in 2-component vector of float) -0:436 'inFV1' (in 2-component vector of float) -0:436 move second child to first child (temp 2-component vector of float) -0:436 'r4' (temp 2-component vector of float) -0:436 matrix-times-vector (temp 2-component vector of float) -0:436 'inFM0' (in 2X2 matrix of float) -0:436 'inFV0' (in 2-component vector of float) -0:436 move second child to first child (temp 2-component vector of float) -0:436 'r5' (temp 2-component vector of float) -0:436 vector-times-matrix (temp 2-component vector of float) -0:436 'inFV0' (in 2-component vector of float) -0:436 'inFM0' (in 2X2 matrix of float) -0:436 move second child to first child (temp 2X2 matrix of float) -0:436 'r6' (temp 2X2 matrix of float) -0:436 matrix-scale (temp 2X2 matrix of float) -0:436 'inFM0' (in 2X2 matrix of float) -0:436 'inF0' (in float) -0:436 move second child to first child (temp 2X2 matrix of float) -0:436 'r7' (temp 2X2 matrix of float) -0:436 matrix-scale (temp 2X2 matrix of float) -0:436 'inF0' (in float) -0:436 'inFM0' (in 2X2 matrix of float) -0:436 move second child to first child (temp 2X2 matrix of float) -0:436 'r8' (temp 2X2 matrix of float) -0:436 matrix-multiply (temp 2X2 matrix of float) -0:436 'inFM0' (in 2X2 matrix of float) -0:436 'inFM1' (in 2X2 matrix of float) -0:446 Function Definition: TestGenMul(f1;f1;vf3;vf3;mf33;mf33; (temp void) -0:442 Function Parameters: -0:442 'inF0' (in float) -0:442 'inF1' (in float) -0:442 'inFV0' (in 3-component vector of float) -0:442 'inFV1' (in 3-component vector of float) -0:442 'inFM0' (in 3X3 matrix of float) -0:442 'inFM1' (in 3X3 matrix of float) +0:442 Sequence +0:442 move second child to first child (temp float) +0:442 'r0' (temp float) +0:442 component-wise multiply (temp float) +0:442 'inF0' (in float) +0:442 'inF1' (in float) +0:442 Sequence +0:442 move second child to first child (temp 2-component vector of float) +0:442 'r1' (temp 2-component vector of float) +0:442 vector-scale (temp 2-component vector of float) +0:442 'inFV0' (in 2-component vector of float) +0:442 'inF0' (in float) +0:442 Sequence +0:442 move second child to first child (temp 2-component vector of float) +0:442 'r2' (temp 2-component vector of float) +0:442 vector-scale (temp 2-component vector of float) +0:442 'inF0' (in float) +0:442 'inFV0' (in 2-component vector of float) +0:442 Sequence +0:442 move second child to first child (temp float) +0:442 'r3' (temp float) +0:442 dot-product (global float) +0:442 'inFV0' (in 2-component vector of float) +0:442 'inFV1' (in 2-component vector of float) +0:442 Sequence +0:442 move second child to first child (temp 2-component vector of float) +0:442 'r4' (temp 2-component vector of float) +0:442 matrix-times-vector (temp 2-component vector of float) +0:442 'inFM0' (in 2X2 matrix of float) +0:442 'inFV0' (in 2-component vector of float) +0:442 Sequence +0:442 move second child to first child (temp 2-component vector of float) +0:442 'r5' (temp 2-component vector of float) +0:442 vector-times-matrix (temp 2-component vector of float) +0:442 'inFV0' (in 2-component vector of float) +0:442 'inFM0' (in 2X2 matrix of float) +0:442 Sequence +0:442 move second child to first child (temp 2X2 matrix of float) +0:442 'r6' (temp 2X2 matrix of float) +0:442 matrix-scale (temp 2X2 matrix of float) +0:442 'inFM0' (in 2X2 matrix of float) +0:442 'inF0' (in float) +0:442 Sequence +0:442 move second child to first child (temp 2X2 matrix of float) +0:442 'r7' (temp 2X2 matrix of float) +0:442 matrix-scale (temp 2X2 matrix of float) +0:442 'inF0' (in float) +0:442 'inFM0' (in 2X2 matrix of float) +0:442 Sequence +0:442 move second child to first child (temp 2X2 matrix of float) +0:442 'r8' (temp 2X2 matrix of float) +0:442 matrix-multiply (temp 2X2 matrix of float) +0:442 'inFM0' (in 2X2 matrix of float) +0:442 'inFM1' (in 2X2 matrix of float) +0:452 Function Definition: TestGenMul3(f1;f1;vf3;vf3;mf33;mf33; (global void) +0:448 Function Parameters: +0:448 'inF0' (in float) +0:448 'inF1' (in float) +0:448 'inFV0' (in 3-component vector of float) +0:448 'inFV1' (in 3-component vector of float) +0:448 'inFM0' (in 3X3 matrix of float) +0:448 'inFM1' (in 3X3 matrix of float) 0:? Sequence -0:443 move second child to first child (temp float) -0:443 'r0' (temp float) -0:443 component-wise multiply (temp float) -0:443 'inF0' (in float) -0:443 'inF1' (in float) -0:443 move second child to first child (temp 3-component vector of float) -0:443 'r1' (temp 3-component vector of float) -0:443 vector-scale (temp 3-component vector of float) -0:443 'inFV0' (in 3-component vector of float) -0:443 'inF0' (in float) -0:443 move second child to first child (temp 3-component vector of float) -0:443 'r2' (temp 3-component vector of float) -0:443 vector-scale (temp 3-component vector of float) -0:443 'inF0' (in float) -0:443 'inFV0' (in 3-component vector of float) -0:443 move second child to first child (temp float) -0:443 'r3' (temp float) -0:443 dot-product (global float) -0:443 'inFV0' (in 3-component vector of float) -0:443 'inFV1' (in 3-component vector of float) -0:443 move second child to first child (temp 3-component vector of float) -0:443 'r4' (temp 3-component vector of float) -0:443 matrix-times-vector (temp 3-component vector of float) -0:443 'inFM0' (in 3X3 matrix of float) -0:443 'inFV0' (in 3-component vector of float) -0:443 move second child to first child (temp 3-component vector of float) -0:443 'r5' (temp 3-component vector of float) -0:443 vector-times-matrix (temp 3-component vector of float) -0:443 'inFV0' (in 3-component vector of float) -0:443 'inFM0' (in 3X3 matrix of float) -0:443 move second child to first child (temp 3X3 matrix of float) -0:443 'r6' (temp 3X3 matrix of float) -0:443 matrix-scale (temp 3X3 matrix of float) -0:443 'inFM0' (in 3X3 matrix of float) -0:443 'inF0' (in float) -0:443 move second child to first child (temp 3X3 matrix of float) -0:443 'r7' (temp 3X3 matrix of float) -0:443 matrix-scale (temp 3X3 matrix of float) -0:443 'inF0' (in float) -0:443 'inFM0' (in 3X3 matrix of float) -0:443 move second child to first child (temp 3X3 matrix of float) -0:443 'r8' (temp 3X3 matrix of float) -0:443 matrix-multiply (temp 3X3 matrix of float) -0:443 'inFM0' (in 3X3 matrix of float) -0:443 'inFM1' (in 3X3 matrix of float) -0:452 Function Definition: TestGenMul(f1;f1;vf4;vf4;mf44;mf44; (temp void) -0:449 Function Parameters: -0:449 'inF0' (in float) -0:449 'inF1' (in float) -0:449 'inFV0' (in 4-component vector of float) -0:449 'inFV1' (in 4-component vector of float) -0:449 'inFM0' (in 4X4 matrix of float) -0:449 'inFM1' (in 4X4 matrix of float) +0:449 Sequence +0:449 move second child to first child (temp float) +0:449 'r0' (temp float) +0:449 component-wise multiply (temp float) +0:449 'inF0' (in float) +0:449 'inF1' (in float) +0:449 Sequence +0:449 move second child to first child (temp 3-component vector of float) +0:449 'r1' (temp 3-component vector of float) +0:449 vector-scale (temp 3-component vector of float) +0:449 'inFV0' (in 3-component vector of float) +0:449 'inF0' (in float) +0:449 Sequence +0:449 move second child to first child (temp 3-component vector of float) +0:449 'r2' (temp 3-component vector of float) +0:449 vector-scale (temp 3-component vector of float) +0:449 'inF0' (in float) +0:449 'inFV0' (in 3-component vector of float) +0:449 Sequence +0:449 move second child to first child (temp float) +0:449 'r3' (temp float) +0:449 dot-product (global float) +0:449 'inFV0' (in 3-component vector of float) +0:449 'inFV1' (in 3-component vector of float) +0:449 Sequence +0:449 move second child to first child (temp 3-component vector of float) +0:449 'r4' (temp 3-component vector of float) +0:449 matrix-times-vector (temp 3-component vector of float) +0:449 'inFM0' (in 3X3 matrix of float) +0:449 'inFV0' (in 3-component vector of float) +0:449 Sequence +0:449 move second child to first child (temp 3-component vector of float) +0:449 'r5' (temp 3-component vector of float) +0:449 vector-times-matrix (temp 3-component vector of float) +0:449 'inFV0' (in 3-component vector of float) +0:449 'inFM0' (in 3X3 matrix of float) +0:449 Sequence +0:449 move second child to first child (temp 3X3 matrix of float) +0:449 'r6' (temp 3X3 matrix of float) +0:449 matrix-scale (temp 3X3 matrix of float) +0:449 'inFM0' (in 3X3 matrix of float) +0:449 'inF0' (in float) +0:449 Sequence +0:449 move second child to first child (temp 3X3 matrix of float) +0:449 'r7' (temp 3X3 matrix of float) +0:449 matrix-scale (temp 3X3 matrix of float) +0:449 'inF0' (in float) +0:449 'inFM0' (in 3X3 matrix of float) +0:449 Sequence +0:449 move second child to first child (temp 3X3 matrix of float) +0:449 'r8' (temp 3X3 matrix of float) +0:449 matrix-multiply (temp 3X3 matrix of float) +0:449 'inFM0' (in 3X3 matrix of float) +0:449 'inFM1' (in 3X3 matrix of float) +0:460 Function Definition: TestGenMul4(f1;f1;vf4;vf4;mf44;mf44; (global void) +0:455 Function Parameters: +0:455 'inF0' (in float) +0:455 'inF1' (in float) +0:455 'inFV0' (in 4-component vector of float) +0:455 'inFV1' (in 4-component vector of float) +0:455 'inFM0' (in 4X4 matrix of float) +0:455 'inFM1' (in 4X4 matrix of float) 0:? Sequence -0:450 move second child to first child (temp float) -0:450 'r0' (temp float) -0:450 component-wise multiply (temp float) -0:450 'inF0' (in float) -0:450 'inF1' (in float) -0:450 move second child to first child (temp 4-component vector of float) -0:450 'r1' (temp 4-component vector of float) -0:450 vector-scale (temp 4-component vector of float) -0:450 'inFV0' (in 4-component vector of float) -0:450 'inF0' (in float) -0:450 move second child to first child (temp 4-component vector of float) -0:450 'r2' (temp 4-component vector of float) -0:450 vector-scale (temp 4-component vector of float) -0:450 'inF0' (in float) -0:450 'inFV0' (in 4-component vector of float) -0:450 move second child to first child (temp float) -0:450 'r3' (temp float) -0:450 dot-product (global float) -0:450 'inFV0' (in 4-component vector of float) -0:450 'inFV1' (in 4-component vector of float) -0:450 move second child to first child (temp 4-component vector of float) -0:450 'r4' (temp 4-component vector of float) -0:450 matrix-times-vector (temp 4-component vector of float) -0:450 'inFM0' (in 4X4 matrix of float) -0:450 'inFV0' (in 4-component vector of float) -0:450 move second child to first child (temp 4-component vector of float) -0:450 'r5' (temp 4-component vector of float) -0:450 vector-times-matrix (temp 4-component vector of float) -0:450 'inFV0' (in 4-component vector of float) -0:450 'inFM0' (in 4X4 matrix of float) -0:450 move second child to first child (temp 4X4 matrix of float) -0:450 'r6' (temp 4X4 matrix of float) -0:450 matrix-scale (temp 4X4 matrix of float) -0:450 'inFM0' (in 4X4 matrix of float) -0:450 'inF0' (in float) -0:450 move second child to first child (temp 4X4 matrix of float) -0:450 'r7' (temp 4X4 matrix of float) -0:450 matrix-scale (temp 4X4 matrix of float) -0:450 'inF0' (in float) -0:450 'inFM0' (in 4X4 matrix of float) -0:450 move second child to first child (temp 4X4 matrix of float) -0:450 'r8' (temp 4X4 matrix of float) -0:450 matrix-multiply (temp 4X4 matrix of float) -0:450 'inFM0' (in 4X4 matrix of float) -0:450 'inFM1' (in 4X4 matrix of float) +0:456 Sequence +0:456 move second child to first child (temp float) +0:456 'r0' (temp float) +0:456 component-wise multiply (temp float) +0:456 'inF0' (in float) +0:456 'inF1' (in float) +0:456 Sequence +0:456 move second child to first child (temp 4-component vector of float) +0:456 'r1' (temp 4-component vector of float) +0:456 vector-scale (temp 4-component vector of float) +0:456 'inFV0' (in 4-component vector of float) +0:456 'inF0' (in float) +0:456 Sequence +0:456 move second child to first child (temp 4-component vector of float) +0:456 'r2' (temp 4-component vector of float) +0:456 vector-scale (temp 4-component vector of float) +0:456 'inF0' (in float) +0:456 'inFV0' (in 4-component vector of float) +0:456 Sequence +0:456 move second child to first child (temp float) +0:456 'r3' (temp float) +0:456 dot-product (global float) +0:456 'inFV0' (in 4-component vector of float) +0:456 'inFV1' (in 4-component vector of float) +0:456 Sequence +0:456 move second child to first child (temp 4-component vector of float) +0:456 'r4' (temp 4-component vector of float) +0:456 matrix-times-vector (temp 4-component vector of float) +0:456 'inFM0' (in 4X4 matrix of float) +0:456 'inFV0' (in 4-component vector of float) +0:456 Sequence +0:456 move second child to first child (temp 4-component vector of float) +0:456 'r5' (temp 4-component vector of float) +0:456 vector-times-matrix (temp 4-component vector of float) +0:456 'inFV0' (in 4-component vector of float) +0:456 'inFM0' (in 4X4 matrix of float) +0:456 Sequence +0:456 move second child to first child (temp 4X4 matrix of float) +0:456 'r6' (temp 4X4 matrix of float) +0:456 matrix-scale (temp 4X4 matrix of float) +0:456 'inFM0' (in 4X4 matrix of float) +0:456 'inF0' (in float) +0:456 Sequence +0:456 move second child to first child (temp 4X4 matrix of float) +0:456 'r7' (temp 4X4 matrix of float) +0:456 matrix-scale (temp 4X4 matrix of float) +0:456 'inF0' (in float) +0:456 'inFM0' (in 4X4 matrix of float) +0:456 Sequence +0:456 move second child to first child (temp 4X4 matrix of float) +0:456 'r8' (temp 4X4 matrix of float) +0:456 matrix-multiply (temp 4X4 matrix of float) +0:456 'inFM0' (in 4X4 matrix of float) +0:456 'inFM1' (in 4X4 matrix of float) +0:484 Function Definition: TestGenMulNxM(f1;f1;vf2;vf3;mf32;mf23;mf33;mf43;mf42; (global void) +0:465 Function Parameters: +0:465 'inF0' (in float) +0:465 'inF1' (in float) +0:465 'inFV2' (in 2-component vector of float) +0:465 'inFV3' (in 3-component vector of float) +0:465 'inFM2x3' (in 3X2 matrix of float) +0:465 'inFM3x2' (in 2X3 matrix of float) +0:465 'inFM3x3' (in 3X3 matrix of float) +0:465 'inFM3x4' (in 4X3 matrix of float) +0:465 'inFM2x4' (in 4X2 matrix of float) +0:? Sequence +0:466 Sequence +0:466 move second child to first child (temp float) +0:466 'r00' (temp float) +0:466 component-wise multiply (temp float) +0:466 'inF0' (in float) +0:466 'inF1' (in float) +0:467 Sequence +0:467 move second child to first child (temp 2-component vector of float) +0:467 'r01' (temp 2-component vector of float) +0:467 vector-scale (temp 2-component vector of float) +0:467 'inFV2' (in 2-component vector of float) +0:467 'inF0' (in float) +0:468 Sequence +0:468 move second child to first child (temp 3-component vector of float) +0:468 'r02' (temp 3-component vector of float) +0:468 vector-scale (temp 3-component vector of float) +0:468 'inFV3' (in 3-component vector of float) +0:468 'inF0' (in float) +0:469 Sequence +0:469 move second child to first child (temp 2-component vector of float) +0:469 'r03' (temp 2-component vector of float) +0:469 vector-scale (temp 2-component vector of float) +0:469 'inF0' (in float) +0:469 'inFV2' (in 2-component vector of float) +0:470 Sequence +0:470 move second child to first child (temp 3-component vector of float) +0:470 'r04' (temp 3-component vector of float) +0:470 vector-scale (temp 3-component vector of float) +0:470 'inF0' (in float) +0:470 'inFV3' (in 3-component vector of float) +0:471 Sequence +0:471 move second child to first child (temp float) +0:471 'r05' (temp float) +0:471 dot-product (global float) +0:471 'inFV2' (in 2-component vector of float) +0:471 'inFV2' (in 2-component vector of float) +0:472 Sequence +0:472 move second child to first child (temp float) +0:472 'r06' (temp float) +0:472 dot-product (global float) +0:472 'inFV3' (in 3-component vector of float) +0:472 'inFV3' (in 3-component vector of float) +0:473 Sequence +0:473 move second child to first child (temp 3-component vector of float) +0:473 'r07' (temp 3-component vector of float) +0:473 vector-times-matrix (temp 3-component vector of float) +0:473 'inFV2' (in 2-component vector of float) +0:473 'inFM2x3' (in 3X2 matrix of float) +0:474 Sequence +0:474 move second child to first child (temp 2-component vector of float) +0:474 'r08' (temp 2-component vector of float) +0:474 vector-times-matrix (temp 2-component vector of float) +0:474 'inFV3' (in 3-component vector of float) +0:474 'inFM3x2' (in 2X3 matrix of float) +0:475 Sequence +0:475 move second child to first child (temp 2-component vector of float) +0:475 'r09' (temp 2-component vector of float) +0:475 matrix-times-vector (temp 2-component vector of float) +0:475 'inFM2x3' (in 3X2 matrix of float) +0:475 'inFV3' (in 3-component vector of float) +0:476 Sequence +0:476 move second child to first child (temp 3-component vector of float) +0:476 'r10' (temp 3-component vector of float) +0:476 matrix-times-vector (temp 3-component vector of float) +0:476 'inFM3x2' (in 2X3 matrix of float) +0:476 'inFV2' (in 2-component vector of float) +0:477 Sequence +0:477 move second child to first child (temp 3X2 matrix of float) +0:477 'r11' (temp 3X2 matrix of float) +0:477 matrix-scale (temp 3X2 matrix of float) +0:477 'inFM2x3' (in 3X2 matrix of float) +0:477 'inF0' (in float) +0:478 Sequence +0:478 move second child to first child (temp 2X3 matrix of float) +0:478 'r12' (temp 2X3 matrix of float) +0:478 matrix-scale (temp 2X3 matrix of float) +0:478 'inFM3x2' (in 2X3 matrix of float) +0:478 'inF0' (in float) +0:479 Sequence +0:479 move second child to first child (temp 2X2 matrix of float) +0:479 'r13' (temp 2X2 matrix of float) +0:479 matrix-multiply (temp 2X2 matrix of float) +0:479 'inFM2x3' (in 3X2 matrix of float) +0:479 'inFM3x2' (in 2X3 matrix of float) +0:480 Sequence +0:480 move second child to first child (temp 3X2 matrix of float) +0:480 'r14' (temp 3X2 matrix of float) +0:480 matrix-multiply (temp 3X2 matrix of float) +0:480 'inFM2x3' (in 3X2 matrix of float) +0:480 'inFM3x3' (in 3X3 matrix of float) +0:481 Sequence +0:481 move second child to first child (temp 4X2 matrix of float) +0:481 'r15' (temp 4X2 matrix of float) +0:481 matrix-multiply (temp 4X2 matrix of float) +0:481 'inFM2x3' (in 3X2 matrix of float) +0:481 'inFM3x4' (in 4X3 matrix of float) +0:482 Sequence +0:482 move second child to first child (temp 4X3 matrix of float) +0:482 'r16' (temp 4X3 matrix of float) +0:482 matrix-multiply (temp 4X3 matrix of float) +0:482 'inFM3x2' (in 2X3 matrix of float) +0:482 'inFM2x4' (in 4X2 matrix of float) 0:? Linker Objects -0:? 'gs_ua' (temp uint) -0:? 'gs_ub' (temp uint) -0:? 'gs_uc' (temp uint) -0:? 'gs_ua2' (temp 2-component vector of uint) -0:? 'gs_ub2' (temp 2-component vector of uint) -0:? 'gs_uc2' (temp 2-component vector of uint) -0:? 'gs_ua3' (temp 3-component vector of uint) -0:? 'gs_ub3' (temp 3-component vector of uint) -0:? 'gs_uc3' (temp 3-component vector of uint) -0:? 'gs_ua4' (temp 4-component vector of uint) -0:? 'gs_ub4' (temp 4-component vector of uint) -0:? 'gs_uc4' (temp 4-component vector of uint) +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) Linked fragment stage: @@ -1452,7 +2772,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:87 Function Definition: PixelShaderFunction(f1;f1;f1;u1;u1; (temp float) +0:88 Function Definition: PixelShaderFunctionS(f1;f1;f1;u1;u1; (global float) 0:17 Function Parameters: 0:17 'inF0' (in float) 0:17 'inF1' (in float) @@ -1460,33 +2780,69 @@ gl_FragCoord origin is upper left 0:17 'inU0' (in uint) 0:17 'inU1' (in uint) 0:? Sequence -0:20 all (global bool) -0:20 'inF0' (in float) -0:21 Absolute value (global float) -0:21 'inF0' (in float) -0:22 arc cosine (global float) -0:22 'inF0' (in float) -0:23 any (global bool) -0:23 'inF0' (in float) -0:24 arc sine (global float) -0:24 'inF0' (in float) -0:25 floatBitsToInt (global int) -0:25 'inF0' (in float) -0:26 floatBitsToUint (global uint) -0:26 'inF0' (in float) -0:27 intBitsToFloat (global float) -0:27 'inU0' (in uint) -0:29 arc tangent (global float) -0:29 'inF0' (in float) -0:30 arc tangent (global float) -0:30 'inF0' (in float) -0:30 'inF1' (in float) -0:31 Ceiling (global float) -0:31 'inF0' (in float) -0:32 clamp (global float) -0:32 'inF0' (in float) -0:32 'inF1' (in float) -0:32 'inF2' (in float) +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 '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 '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 '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 '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 '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 '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 '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 '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 '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 '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 '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 'inF0' (in float) +0:32 'inF1' (in float) +0:32 'inF2' (in float) 0:33 Test condition and select (temp void) 0:33 Condition 0:33 Compare Less Than (temp bool) @@ -1495,1044 +2851,2051 @@ gl_FragCoord origin is upper left 0:33 0.000000 0:33 true case 0:33 Branch: Kill -0:34 cosine (global float) -0:34 'inF0' (in float) -0:35 hyp. cosine (global float) -0:35 'inF0' (in float) -0:36 bitCount (global uint) -0:36 Constant: -0:36 7 (const uint) -0:37 dPdx (global float) -0:37 'inF0' (in float) -0:38 dPdxCoarse (global float) -0:38 'inF0' (in float) -0:39 dPdxFine (global float) -0:39 'inF0' (in float) -0:40 dPdy (global float) -0:40 'inF0' (in float) -0:41 dPdyCoarse (global float) -0:41 'inF0' (in float) -0:42 dPdyFine (global float) -0:42 'inF0' (in float) -0:43 degrees (global float) -0:43 'inF0' (in float) -0:47 exp (global float) -0:47 'inF0' (in float) -0:48 exp2 (global float) -0:48 'inF0' (in float) -0:49 findMSB (global int) -0:49 Constant: -0:49 7 (const int) -0:50 findLSB (global int) -0:50 Constant: -0:50 7 (const int) -0:51 Floor (global float) -0:51 'inF0' (in float) -0:53 mod (global float) -0:53 'inF0' (in float) -0:53 'inF1' (in float) -0:54 Fraction (global float) -0:54 'inF0' (in float) -0:55 frexp (global float) -0:55 'inF0' (in float) -0:55 'inF1' (in float) -0:56 fwidth (global float) -0:56 'inF0' (in float) -0:57 isinf (global bool) -0:57 'inF0' (in float) -0:58 isnan (global bool) -0:58 'inF0' (in float) -0:59 ldexp (global float) -0:59 'inF0' (in float) -0:59 'inF1' (in float) -0:60 log (global float) -0:60 'inF0' (in float) -0:61 component-wise multiply (temp float) -0:61 log2 (temp float) -0:61 'inF0' (in float) -0:61 Constant: -0:61 0.301030 -0:62 log2 (global float) -0:62 'inF0' (in float) -0:63 max (global float) -0:63 'inF0' (in float) -0:63 'inF1' (in float) -0:64 min (global float) -0:64 'inF0' (in float) -0:64 'inF1' (in float) -0:65 pow (global float) -0:65 'inF0' (in float) -0:65 'inF1' (in float) -0:66 radians (global float) -0:66 'inF0' (in float) -0:67 divide (temp float) -0:67 Constant: -0:67 1.000000 -0:67 'inF0' (in float) -0:68 bitFieldReverse (global uint) -0:68 Constant: -0:68 2 (const uint) -0:69 roundEven (global float) -0:69 'inF0' (in float) -0:70 inverse sqrt (global float) -0:70 'inF0' (in float) -0:71 clamp (temp float) -0:71 'inF0' (in float) -0:71 Constant: -0:71 0.000000 -0:71 Constant: -0:71 1.000000 -0:72 Sign (global float) -0:72 'inF0' (in float) -0:73 sine (global float) -0:73 'inF0' (in float) +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 '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 '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 Constant: +0:36 7 (const uint) +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 '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 '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 '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 '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 '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 '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 '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 '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 '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 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 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 '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 '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 '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 '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 '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 '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 '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 '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 '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 'inF0' (in float) +0:62 Sequence +0:62 move second child to first child (temp float) +0:62 'r041' (temp float) +0:62 component-wise multiply (temp float) +0:62 log2 (temp float) +0:62 'inF0' (in float) +0:62 Constant: +0:62 0.301030 +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 '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 '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 '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 '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 'inF0' (in float) +0:68 Sequence +0:68 move second child to first child (temp float) +0:68 'r047' (temp float) +0:68 divide (temp float) +0:68 Constant: +0:68 1.000000 +0:68 'inF0' (in float) +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:70 Sequence +0:70 move second child to first child (temp float) +0:70 'r049' (temp float) +0:70 roundEven (global 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 'inF0' (in float) +0:72 Sequence +0:72 move second child to first child (temp float) +0:72 'r051' (temp float) +0:72 clamp (temp float) +0:72 'inF0' (in float) +0:72 Constant: +0:72 0.000000 +0:72 Constant: +0:72 1.000000 +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 'inF0' (in float) 0:74 Sequence 0:74 move second child to first child (temp float) -0:74 'inF1' (in float) -0:74 sine (temp float) +0:74 'r053' (temp float) +0:74 sine (global float) 0:74 'inF0' (in float) -0:74 move second child to first child (temp float) -0:74 'inF2' (in float) -0:74 cosine (temp float) -0:74 'inF0' (in float) -0:75 hyp. sine (global float) -0:75 'inF0' (in float) -0:76 smoothstep (global float) -0:76 'inF0' (in float) -0:76 'inF1' (in float) -0:76 'inF2' (in float) -0:77 sqrt (global float) -0:77 'inF0' (in float) -0:78 step (global float) -0:78 'inF0' (in float) -0:78 'inF1' (in float) -0:79 tangent (global float) -0:79 'inF0' (in float) -0:80 hyp. tangent (global float) -0:80 'inF0' (in float) -0:82 trunc (global float) -0:82 'inF0' (in float) -0:84 Branch: Return with expression -0:84 Constant: -0:84 0.000000 -0:93 Function Definition: PixelShaderFunction(vf1;vf1;vf1; (temp 1-component vector of float) -0:88 Function Parameters: -0:88 'inF0' (in 1-component vector of float) -0:88 'inF1' (in 1-component vector of float) -0:88 'inF2' (in 1-component vector of float) +0:75 Sequence +0:75 move second child to first child (temp float) +0:75 'inF1' (in float) +0:75 sine (temp float) +0:75 'inF0' (in float) +0:75 move second child to first child (temp float) +0:75 'inF2' (in float) +0:75 cosine (temp float) +0:75 'inF0' (in float) +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 '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 '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 '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 '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 '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 '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 'inF0' (in float) +0:85 Branch: Return with expression +0:85 Constant: +0:85 0.000000 +0:94 Function Definition: PixelShaderFunction1(vf1;vf1;vf1; (global 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) +0:89 'inF2' (in 1-component vector of float) 0:? Sequence -0:90 Branch: Return with expression -0:90 Constant: -0:90 0.000000 -0:172 Function Definition: PixelShaderFunction(vf2;vf2;vf2;vu2;vu2; (temp 2-component vector of float) -0:94 Function Parameters: -0:94 'inF0' (in 2-component vector of float) -0:94 'inF1' (in 2-component vector of float) -0:94 'inF2' (in 2-component vector of float) -0:94 'inU0' (in 2-component vector of uint) -0:94 'inU1' (in 2-component vector of uint) +0:91 Branch: Return with expression +0:91 Constant: +0:91 0.000000 +0:177 Function Definition: PixelShaderFunction2(vf2;vf2;vf2;vu2;vu2; (global 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) +0:95 'inF2' (in 2-component vector of float) +0:95 'inU0' (in 2-component vector of uint) +0:95 'inU1' (in 2-component vector of uint) 0:? Sequence -0:97 all (global bool) -0:97 'inF0' (in 2-component vector of float) -0:98 Absolute value (global 2-component vector of float) -0:98 'inF0' (in 2-component vector of float) -0:99 arc cosine (global 2-component vector of float) -0:99 'inF0' (in 2-component vector of float) -0:100 any (global bool) -0:100 'inF0' (in 2-component vector of float) -0:101 arc sine (global 2-component vector of float) -0:101 'inF0' (in 2-component vector of float) -0:102 floatBitsToInt (global 2-component vector of int) -0:102 'inF0' (in 2-component vector of float) -0:103 floatBitsToUint (global 2-component vector of uint) -0:103 'inF0' (in 2-component vector of float) -0:104 intBitsToFloat (global 2-component vector of float) -0:104 'inU0' (in 2-component vector of uint) -0:106 arc tangent (global 2-component vector of float) -0:106 'inF0' (in 2-component vector of float) -0:107 arc tangent (global 2-component vector of float) -0:107 'inF0' (in 2-component vector of float) -0:107 'inF1' (in 2-component vector of float) -0:108 Ceiling (global 2-component vector of float) -0:108 'inF0' (in 2-component vector of float) -0:109 clamp (global 2-component vector of float) -0:109 'inF0' (in 2-component vector of float) -0:109 'inF1' (in 2-component vector of float) -0:109 'inF2' (in 2-component vector of float) -0:110 Test condition and select (temp void) -0:110 Condition -0:110 any (temp bool) -0:110 Compare Less Than (temp 2-component vector of bool) +0:98 Sequence +0:98 move second child to first child (temp bool) +0:98 'r000' (temp bool) +0:98 all (global 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 '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 '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 '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 '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 '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 '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 '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 '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 '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 '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 'inF0' (in 2-component vector of float) -0:110 Constant: -0:110 0.000000 -0:110 0.000000 -0:110 true case -0:110 Branch: Kill -0:111 cosine (global 2-component vector of float) -0:111 'inF0' (in 2-component vector of float) -0:112 hyp. cosine (global 2-component vector of float) -0:112 'inF0' (in 2-component vector of float) -0:? bitCount (global 2-component vector of uint) -0:? Constant: -0:? 7 (const uint) -0:? 3 (const uint) -0:114 dPdx (global 2-component vector of float) -0:114 'inF0' (in 2-component vector of float) -0:115 dPdxCoarse (global 2-component vector of float) -0:115 'inF0' (in 2-component vector of float) -0:116 dPdxFine (global 2-component vector of float) -0:116 'inF0' (in 2-component vector of float) -0:117 dPdy (global 2-component vector of float) -0:117 'inF0' (in 2-component vector of float) -0:118 dPdyCoarse (global 2-component vector of float) -0:118 'inF0' (in 2-component vector of float) -0:119 dPdyFine (global 2-component vector of float) -0:119 'inF0' (in 2-component vector of float) -0:120 degrees (global 2-component vector of float) -0:120 'inF0' (in 2-component vector of float) -0:121 distance (global float) -0:121 'inF0' (in 2-component vector of float) -0:121 'inF1' (in 2-component vector of float) -0:122 dot-product (global float) -0:122 'inF0' (in 2-component vector of float) -0:122 'inF1' (in 2-component vector of float) -0:126 exp (global 2-component vector of float) -0:126 'inF0' (in 2-component vector of float) -0:127 exp2 (global 2-component vector of float) -0:127 'inF0' (in 2-component vector of float) -0:128 face-forward (global 2-component vector of float) -0:128 'inF0' (in 2-component vector of float) -0:128 'inF1' (in 2-component vector of float) -0:128 'inF2' (in 2-component vector of float) -0:129 findMSB (global int) -0:129 Constant: -0:129 7 (const int) -0:130 findLSB (global int) -0:130 Constant: -0:130 7 (const int) -0:131 Floor (global 2-component vector of float) -0:131 'inF0' (in 2-component vector of float) -0:133 mod (global 2-component vector of float) -0:133 'inF0' (in 2-component vector of float) -0:133 'inF1' (in 2-component vector of float) -0:134 Fraction (global 2-component vector of float) -0:134 'inF0' (in 2-component vector of float) -0:135 frexp (global 2-component vector of float) -0:135 'inF0' (in 2-component vector of float) -0:135 'inF1' (in 2-component vector of float) -0:136 fwidth (global 2-component vector of float) -0:136 'inF0' (in 2-component vector of float) -0:137 isinf (global 2-component vector of bool) -0:137 'inF0' (in 2-component vector of float) -0:138 isnan (global 2-component vector of bool) -0:138 'inF0' (in 2-component vector of float) -0:139 ldexp (global 2-component vector of float) -0:139 'inF0' (in 2-component vector of float) -0:139 'inF1' (in 2-component vector of float) -0:140 length (global float) -0:140 'inF0' (in 2-component vector of float) -0:141 log (global 2-component vector of float) -0:141 'inF0' (in 2-component vector of float) -0:142 vector-scale (temp 2-component vector of float) -0:142 log2 (temp 2-component vector of float) -0:142 'inF0' (in 2-component vector of float) -0:142 Constant: -0:142 0.301030 -0:143 log2 (global 2-component vector of float) -0:143 'inF0' (in 2-component vector of float) -0:144 max (global 2-component vector of float) -0:144 'inF0' (in 2-component vector of float) -0:144 'inF1' (in 2-component vector of float) -0:145 min (global 2-component vector of float) -0:145 'inF0' (in 2-component vector of float) -0:145 'inF1' (in 2-component vector of float) -0:146 normalize (global 2-component vector of float) -0:146 'inF0' (in 2-component vector of float) -0:147 pow (global 2-component vector of float) -0:147 'inF0' (in 2-component vector of float) -0:147 'inF1' (in 2-component vector of float) -0:148 radians (global 2-component vector of float) -0:148 'inF0' (in 2-component vector of float) -0:149 divide (temp 2-component vector of float) -0:149 Constant: -0:149 1.000000 -0:149 'inF0' (in 2-component vector of float) -0:150 reflect (global 2-component vector of float) -0:150 'inF0' (in 2-component vector of float) -0:150 'inF1' (in 2-component vector of float) -0:151 refract (global 2-component vector of float) -0:151 'inF0' (in 2-component vector of float) -0:151 'inF1' (in 2-component vector of float) -0:151 Constant: -0:151 2.000000 -0:? bitFieldReverse (global 2-component vector of uint) -0:? Constant: -0:? 1 (const uint) -0:? 2 (const uint) -0:153 roundEven (global 2-component vector of float) -0:153 'inF0' (in 2-component vector of float) -0:154 inverse sqrt (global 2-component vector of float) -0:154 'inF0' (in 2-component vector of float) -0:155 clamp (temp 2-component vector of float) -0:155 'inF0' (in 2-component vector of float) -0:155 Constant: -0:155 0.000000 -0:155 Constant: -0:155 1.000000 -0:156 Sign (global 2-component vector of float) -0:156 'inF0' (in 2-component vector of float) -0:157 sine (global 2-component vector of float) -0:157 '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) +0:111 Test condition and select (temp void) +0:111 Condition +0:111 any (temp bool) +0:111 Compare Less Than (temp 2-component vector of bool) +0:111 'inF0' (in 2-component vector of float) +0:111 Constant: +0:111 0.000000 +0:111 0.000000 +0:111 true case +0:111 Branch: Kill +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 '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 '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:? Constant: +0:? 7 (const uint) +0:? 3 (const uint) +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 '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 '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 '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 '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 '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 '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 '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 '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 '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 '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 '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 '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:? 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:? 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 '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 '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 '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 '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 '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 '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 '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 '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 '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 '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 'inF0' (in 2-component vector of float) +0:147 Sequence +0:147 move second child to first child (temp 2-component vector of float) +0:147 'r044' (temp 2-component vector of float) +0:147 vector-scale (temp 2-component vector of float) +0:147 log2 (temp 2-component vector of float) +0:147 'inF0' (in 2-component vector of float) +0:147 Constant: +0:147 0.301030 +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 '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 '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 '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 '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 '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 'inF0' (in 2-component vector of float) +0:154 Sequence +0:154 move second child to first child (temp 2-component vector of float) +0:154 'r051' (temp 2-component vector of float) +0:154 divide (temp 2-component vector of float) +0:154 Constant: +0:154 1.000000 +0:154 'inF0' (in 2-component vector of float) +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 '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 'inF0' (in 2-component vector of float) +0:156 'inF1' (in 2-component vector of float) +0:156 Constant: +0:156 2.000000 +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:? 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 'inF1' (in 2-component vector of float) -0:158 sine (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 'inF0' (in 2-component vector of float) -0:158 move second child to first child (temp 2-component vector of float) -0:158 'inF2' (in 2-component vector of float) -0:158 cosine (temp 2-component vector of float) -0:158 'inF0' (in 2-component vector of float) -0:159 hyp. sine (global 2-component vector of float) -0:159 'inF0' (in 2-component vector of float) -0:160 smoothstep (global 2-component vector of float) -0:160 'inF0' (in 2-component vector of float) -0:160 'inF1' (in 2-component vector of float) -0:160 'inF2' (in 2-component vector of float) -0:161 sqrt (global 2-component vector of float) -0:161 'inF0' (in 2-component vector of float) -0:162 step (global 2-component vector of float) -0:162 'inF0' (in 2-component vector of float) -0:162 'inF1' (in 2-component vector of float) -0:163 tangent (global 2-component vector of float) -0:163 'inF0' (in 2-component vector of float) -0:164 hyp. tangent (global 2-component vector of float) -0:164 'inF0' (in 2-component vector of float) -0:166 trunc (global 2-component vector of float) -0:166 'inF0' (in 2-component vector of float) -0:169 Branch: Return with expression +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 'inF0' (in 2-component vector of float) +0:160 Sequence +0:160 move second child to first child (temp 2-component vector of float) +0:160 'r057' (temp 2-component vector of float) +0:160 clamp (temp 2-component vector of float) +0:160 'inF0' (in 2-component vector of float) +0:160 Constant: +0:160 0.000000 +0:160 Constant: +0:160 1.000000 +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 '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 'inF0' (in 2-component vector of float) +0:163 Sequence +0:163 move second child to first child (temp 2-component vector of float) +0:163 'inF1' (in 2-component vector of float) +0:163 sine (temp 2-component vector of float) +0:163 'inF0' (in 2-component vector of float) +0:163 move second child to first child (temp 2-component vector of float) +0:163 'inF2' (in 2-component vector of float) +0:163 cosine (temp 2-component vector of float) +0:163 'inF0' (in 2-component vector of float) +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 '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 '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 '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 '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 '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 '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 'inF0' (in 2-component vector of float) +0:174 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 -0:252 Function Definition: PixelShaderFunction(vf3;vf3;vf3;vu3;vu3; (temp 3-component vector of float) -0:173 Function Parameters: -0:173 'inF0' (in 3-component vector of float) -0:173 'inF1' (in 3-component vector of float) -0:173 'inF2' (in 3-component vector of float) -0:173 'inU0' (in 3-component vector of uint) -0:173 'inU1' (in 3-component vector of uint) +0:258 Function Definition: PixelShaderFunction3(vf3;vf3;vf3;vu3;vu3; (global 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) +0:178 'inF2' (in 3-component vector of float) +0:178 'inU0' (in 3-component vector of uint) +0:178 'inU1' (in 3-component vector of uint) 0:? Sequence -0:176 all (global bool) -0:176 'inF0' (in 3-component vector of float) -0:177 Absolute value (global 3-component vector of float) -0:177 'inF0' (in 3-component vector of float) -0:178 arc cosine (global 3-component vector of float) -0:178 'inF0' (in 3-component vector of float) -0:179 any (global bool) -0:179 'inF0' (in 3-component vector of float) -0:180 arc sine (global 3-component vector of float) -0:180 'inF0' (in 3-component vector of float) -0:181 floatBitsToInt (global 3-component vector of int) -0:181 'inF0' (in 3-component vector of float) -0:182 floatBitsToUint (global 3-component vector of uint) -0:182 'inF0' (in 3-component vector of float) -0:183 intBitsToFloat (global 3-component vector of float) -0:183 'inU0' (in 3-component vector of uint) -0:185 arc tangent (global 3-component vector of float) -0:185 'inF0' (in 3-component vector of float) -0:186 arc tangent (global 3-component vector of float) -0:186 'inF0' (in 3-component vector of float) -0:186 'inF1' (in 3-component vector of float) -0:187 Ceiling (global 3-component vector of float) -0:187 'inF0' (in 3-component vector of float) -0:188 clamp (global 3-component vector of float) -0:188 'inF0' (in 3-component vector of float) -0:188 'inF1' (in 3-component vector of float) -0:188 'inF2' (in 3-component vector of float) -0:189 Test condition and select (temp void) -0:189 Condition -0:189 any (temp bool) -0:189 Compare Less Than (temp 3-component vector of bool) -0:189 'inF0' (in 3-component vector of float) -0:189 Constant: -0:189 0.000000 -0:189 0.000000 -0:189 0.000000 -0:189 true case -0:189 Branch: Kill -0:190 cosine (global 3-component vector of float) -0:190 'inF0' (in 3-component vector of float) -0:191 hyp. cosine (global 3-component vector of float) -0:191 'inF0' (in 3-component vector of float) -0:? bitCount (global 3-component vector of uint) -0:? Constant: -0:? 7 (const uint) -0:? 3 (const uint) -0:? 5 (const uint) -0:193 cross-product (global 3-component vector of float) -0:193 'inF0' (in 3-component vector of float) -0:193 'inF1' (in 3-component vector of float) -0:194 dPdx (global 3-component vector of float) -0:194 'inF0' (in 3-component vector of float) -0:195 dPdxCoarse (global 3-component vector of float) -0:195 'inF0' (in 3-component vector of float) -0:196 dPdxFine (global 3-component vector of float) -0:196 'inF0' (in 3-component vector of float) -0:197 dPdy (global 3-component vector of float) -0:197 'inF0' (in 3-component vector of float) -0:198 dPdyCoarse (global 3-component vector of float) -0:198 'inF0' (in 3-component vector of float) -0:199 dPdyFine (global 3-component vector of float) -0:199 'inF0' (in 3-component vector of float) -0:200 degrees (global 3-component vector of float) -0:200 'inF0' (in 3-component vector of float) -0:201 distance (global float) -0:201 'inF0' (in 3-component vector of float) -0:201 'inF1' (in 3-component vector of float) -0:202 dot-product (global float) -0:202 'inF0' (in 3-component vector of float) -0:202 'inF1' (in 3-component vector of float) -0:206 exp (global 3-component vector of float) -0:206 'inF0' (in 3-component vector of float) -0:207 exp2 (global 3-component vector of float) -0:207 'inF0' (in 3-component vector of float) -0:208 face-forward (global 3-component vector of float) -0:208 'inF0' (in 3-component vector of float) -0:208 'inF1' (in 3-component vector of float) -0:208 'inF2' (in 3-component vector of float) -0:209 findMSB (global int) -0:209 Constant: -0:209 7 (const int) -0:210 findLSB (global int) -0:210 Constant: -0:210 7 (const int) -0:211 Floor (global 3-component vector of float) -0:211 'inF0' (in 3-component vector of float) -0:213 mod (global 3-component vector of float) -0:213 'inF0' (in 3-component vector of float) -0:213 'inF1' (in 3-component vector of float) -0:214 Fraction (global 3-component vector of float) -0:214 'inF0' (in 3-component vector of float) -0:215 frexp (global 3-component vector of float) -0:215 'inF0' (in 3-component vector of float) -0:215 'inF1' (in 3-component vector of float) -0:216 fwidth (global 3-component vector of float) -0:216 'inF0' (in 3-component vector of float) -0:217 isinf (global 3-component vector of bool) -0:217 'inF0' (in 3-component vector of float) -0:218 isnan (global 3-component vector of bool) -0:218 'inF0' (in 3-component vector of float) -0:219 ldexp (global 3-component vector of float) -0:219 'inF0' (in 3-component vector of float) -0:219 'inF1' (in 3-component vector of float) -0:220 length (global float) -0:220 'inF0' (in 3-component vector of float) -0:221 log (global 3-component vector of float) -0:221 'inF0' (in 3-component vector of float) -0:222 vector-scale (temp 3-component vector of float) -0:222 log2 (temp 3-component vector of float) -0:222 'inF0' (in 3-component vector of float) -0:222 Constant: -0:222 0.301030 -0:223 log2 (global 3-component vector of float) -0:223 'inF0' (in 3-component vector of float) -0:224 max (global 3-component vector of float) -0:224 'inF0' (in 3-component vector of float) -0:224 'inF1' (in 3-component vector of float) -0:225 min (global 3-component vector of float) -0:225 'inF0' (in 3-component vector of float) -0:225 'inF1' (in 3-component vector of float) -0:226 normalize (global 3-component vector of float) -0:226 'inF0' (in 3-component vector of float) -0:227 pow (global 3-component vector of float) -0:227 'inF0' (in 3-component vector of float) -0:227 'inF1' (in 3-component vector of float) -0:228 radians (global 3-component vector of float) -0:228 'inF0' (in 3-component vector of float) -0:229 divide (temp 3-component vector of float) -0:229 Constant: -0:229 1.000000 -0:229 'inF0' (in 3-component vector of float) -0:230 reflect (global 3-component vector of float) -0:230 'inF0' (in 3-component vector of float) -0:230 'inF1' (in 3-component vector of float) -0:231 refract (global 3-component vector of float) -0:231 'inF0' (in 3-component vector of float) -0:231 'inF1' (in 3-component vector of float) -0:231 Constant: -0:231 2.000000 -0:? bitFieldReverse (global 3-component vector of uint) -0:? Constant: -0:? 1 (const uint) -0:? 2 (const uint) -0:? 3 (const uint) -0:233 roundEven (global 3-component vector of float) -0:233 'inF0' (in 3-component vector of float) -0:234 inverse sqrt (global 3-component vector of float) -0:234 'inF0' (in 3-component vector of float) -0:235 clamp (temp 3-component vector of float) -0:235 'inF0' (in 3-component vector of float) -0:235 Constant: -0:235 0.000000 -0:235 Constant: -0:235 1.000000 -0:236 Sign (global 3-component vector of float) -0:236 'inF0' (in 3-component vector of float) -0:237 sine (global 3-component vector of float) -0:237 'inF0' (in 3-component vector of float) +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 '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 '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 '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 '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 '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 '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 '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 '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 '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 '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 '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 '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) +0:194 Test condition and select (temp void) +0:194 Condition +0:194 any (temp bool) +0:194 Compare Less Than (temp 3-component vector of bool) +0:194 'inF0' (in 3-component vector of float) +0:194 Constant: +0:194 0.000000 +0:194 0.000000 +0:194 0.000000 +0:194 true case +0:194 Branch: Kill +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 '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 '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:? Constant: +0:? 7 (const uint) +0:? 3 (const uint) +0:? 5 (const uint) +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 '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 '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 '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 '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 '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 '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 '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 '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 '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 '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 '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 '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 '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:? Constant: +0:? 2 (const uint) +0:? 3 (const uint) +0:? 4 (const uint) +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:? Constant: +0:? 2 (const uint) +0:? 3 (const uint) +0:? 4 (const uint) +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 '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 '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 '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 '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 '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 '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 '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 '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 '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 float) +0:226 'r043' (temp float) +0:226 length (global float) +0:226 'inF0' (in 3-component vector of float) +0:227 Sequence +0:227 move second child to first child (temp 3-component vector of float) +0:227 'r044' (temp 3-component vector of float) +0:227 log (global 3-component vector of 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 'r045' (temp 3-component vector of float) +0:228 vector-scale (temp 3-component vector of float) +0:228 log2 (temp 3-component vector of float) +0:228 'inF0' (in 3-component vector of float) +0:228 Constant: +0:228 0.301030 +0:229 Sequence +0:229 move second child to first child (temp 3-component vector of float) +0:229 'r046' (temp 3-component vector of float) +0:229 log2 (global 3-component vector of float) +0:229 'inF0' (in 3-component vector of float) +0:230 Sequence +0:230 move second child to first child (temp 3-component vector of float) +0:230 'r047' (temp 3-component vector of float) +0:230 max (global 3-component vector of float) +0:230 'inF0' (in 3-component vector of float) +0:230 'inF1' (in 3-component vector of float) +0:231 Sequence +0:231 move second child to first child (temp 3-component vector of float) +0:231 'r048' (temp 3-component vector of float) +0:231 min (global 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 'r049' (temp 3-component vector of float) +0:232 normalize (global 3-component vector of float) +0:232 'inF0' (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 'r050' (temp 3-component vector of float) +0:233 pow (global 3-component vector of float) +0:233 'inF0' (in 3-component vector of float) +0:233 'inF1' (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 'r051' (temp 3-component vector of float) +0:234 radians (global 3-component vector of float) +0:234 'inF0' (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 'r052' (temp 3-component vector of float) +0:235 divide (temp 3-component vector of float) +0:235 Constant: +0:235 1.000000 +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) +0:236 'r053' (temp 3-component vector of float) +0:236 reflect (global 3-component vector of float) +0:236 'inF0' (in 3-component vector of float) +0:236 'inF1' (in 3-component vector of float) +0:237 Sequence +0:237 move second child to first child (temp 3-component vector of float) +0:237 'r054' (temp 3-component vector of float) +0:237 refract (global 3-component vector of float) +0:237 'inF0' (in 3-component vector of float) +0:237 'inF1' (in 3-component vector of float) +0:237 Constant: +0:237 2.000000 0:238 Sequence -0:238 move second child to first child (temp 3-component vector of float) -0:238 'inF1' (in 3-component vector of float) -0:238 sine (temp 3-component vector of float) -0:238 'inF0' (in 3-component vector of float) -0:238 move second child to first child (temp 3-component vector of float) -0:238 'inF2' (in 3-component vector of float) -0:238 cosine (temp 3-component vector of float) -0:238 'inF0' (in 3-component vector of float) -0:239 hyp. sine (global 3-component vector of float) -0:239 'inF0' (in 3-component vector of float) -0:240 smoothstep (global 3-component vector of float) -0:240 'inF0' (in 3-component vector of float) -0:240 'inF1' (in 3-component vector of float) -0:240 'inF2' (in 3-component vector of float) -0:241 sqrt (global 3-component vector of float) -0:241 'inF0' (in 3-component vector of float) -0:242 step (global 3-component vector of float) -0:242 'inF0' (in 3-component vector of float) -0:242 'inF1' (in 3-component vector of float) -0:243 tangent (global 3-component vector of float) -0:243 'inF0' (in 3-component vector of float) -0:244 hyp. tangent (global 3-component vector of float) -0:244 'inF0' (in 3-component vector of float) -0:246 trunc (global 3-component vector of float) -0:246 'inF0' (in 3-component vector of float) -0:249 Branch: Return with expression +0:238 move second child to first child (temp 3-component vector of uint) +0:238 'r055' (temp 3-component vector of uint) +0:? bitFieldReverse (global 3-component vector of uint) +0:? Constant: +0:? 1 (const uint) +0:? 2 (const uint) +0:? 3 (const uint) +0:239 Sequence +0:239 move second child to first child (temp 3-component vector of float) +0:239 'r056' (temp 3-component vector of float) +0:239 roundEven (global 3-component vector of float) +0:239 'inF0' (in 3-component vector of float) +0:240 Sequence +0:240 move second child to first child (temp 3-component vector of float) +0:240 'r057' (temp 3-component vector of float) +0:240 inverse sqrt (global 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 'r058' (temp 3-component vector of float) +0:241 clamp (temp 3-component vector of float) +0:241 'inF0' (in 3-component vector of float) +0:241 Constant: +0:241 0.000000 +0:241 Constant: +0:241 1.000000 +0:242 Sequence +0:242 move second child to first child (temp 3-component vector of float) +0:242 'r059' (temp 3-component vector of float) +0:242 Sign (global 3-component vector of float) +0:242 'inF0' (in 3-component vector of float) +0:243 Sequence +0:243 move second child to first child (temp 3-component vector of float) +0:243 'r060' (temp 3-component vector of float) +0:243 sine (global 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 'inF1' (in 3-component vector of float) +0:244 sine (temp 3-component vector of float) +0:244 'inF0' (in 3-component vector of float) +0:244 move second child to first child (temp 3-component vector of float) +0:244 'inF2' (in 3-component vector of float) +0:244 cosine (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) +0:245 'r061' (temp 3-component vector of float) +0:245 hyp. sine (global 3-component vector of float) +0:245 'inF0' (in 3-component vector of float) +0:246 Sequence +0:246 move second child to first child (temp 3-component vector of float) +0:246 'r062' (temp 3-component vector of float) +0:246 smoothstep (global 3-component vector of float) +0:246 'inF0' (in 3-component vector of float) +0:246 'inF1' (in 3-component vector of float) +0:246 'inF2' (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 'r063' (temp 3-component vector of float) +0:247 sqrt (global 3-component vector of float) +0:247 'inF0' (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 'r064' (temp 3-component vector of float) +0:248 step (global 3-component vector of float) +0:248 'inF0' (in 3-component vector of float) +0:248 'inF1' (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 'r065' (temp 3-component vector of float) +0:249 tangent (global 3-component vector of float) +0:249 'inF0' (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 'r066' (temp 3-component vector of float) +0:250 hyp. tangent (global 3-component vector of float) +0:250 'inF0' (in 3-component vector of float) +0:252 Sequence +0:252 move second child to first child (temp 3-component vector of float) +0:252 'r067' (temp 3-component vector of float) +0:252 trunc (global 3-component vector of float) +0:252 'inF0' (in 3-component vector of float) +0:255 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 -0:393 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vu4;vu4; (temp 4-component vector of float) -0:253 Function Parameters: -0:253 'inF0' (in 4-component vector of float) -0:253 'inF1' (in 4-component vector of float) -0:253 'inF2' (in 4-component vector of float) -0:253 'inU0' (in 4-component vector of uint) -0:253 'inU1' (in 4-component vector of uint) +0:399 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vu4;vu4; (global 4-component vector of float) +0:259 Function Parameters: +0:259 'inF0' (in 4-component vector of float) +0:259 'inF1' (in 4-component vector of float) +0:259 'inF2' (in 4-component vector of float) +0:259 'inU0' (in 4-component vector of uint) +0:259 'inU1' (in 4-component vector of uint) 0:? Sequence -0:256 all (global bool) -0:256 'inF0' (in 4-component vector of float) -0:257 Absolute value (global 4-component vector of float) -0:257 'inF0' (in 4-component vector of float) -0:258 arc cosine (global 4-component vector of float) -0:258 'inF0' (in 4-component vector of float) -0:259 any (global bool) -0:259 'inF0' (in 4-component vector of float) -0:260 arc sine (global 4-component vector of float) -0:260 'inF0' (in 4-component vector of float) -0:261 floatBitsToInt (global 4-component vector of int) -0:261 'inF0' (in 4-component vector of float) -0:262 floatBitsToUint (global 4-component vector of uint) -0:262 'inF0' (in 4-component vector of float) -0:263 intBitsToFloat (global 4-component vector of float) -0:263 'inU0' (in 4-component vector of uint) -0:265 arc tangent (global 4-component vector of float) -0:265 'inF0' (in 4-component vector of float) -0:266 arc tangent (global 4-component vector of float) -0:266 'inF0' (in 4-component vector of float) -0:266 'inF1' (in 4-component vector of float) -0:267 Ceiling (global 4-component vector of float) -0:267 'inF0' (in 4-component vector of float) -0:268 clamp (global 4-component vector of float) -0:268 'inF0' (in 4-component vector of float) -0:268 'inF1' (in 4-component vector of float) -0:268 'inF2' (in 4-component vector of float) -0:269 Test condition and select (temp void) -0:269 Condition -0:269 any (temp bool) -0:269 Compare Less Than (temp 4-component vector of bool) -0:269 'inF0' (in 4-component vector of float) -0:269 Constant: -0:269 0.000000 -0:269 0.000000 -0:269 0.000000 -0:269 0.000000 -0:269 true case -0:269 Branch: Kill -0:270 cosine (global 4-component vector of float) -0:270 'inF0' (in 4-component vector of float) -0:271 hyp. cosine (global 4-component vector of float) -0:271 'inF0' (in 4-component vector of float) -0:? bitCount (global 4-component vector of uint) -0:? Constant: -0:? 7 (const uint) -0:? 3 (const uint) -0:? 5 (const uint) -0:? 2 (const uint) -0:273 dPdx (global 4-component vector of float) -0:273 'inF0' (in 4-component vector of float) -0:274 dPdxCoarse (global 4-component vector of float) -0:274 'inF0' (in 4-component vector of float) -0:275 dPdxFine (global 4-component vector of float) -0:275 'inF0' (in 4-component vector of float) -0:276 dPdy (global 4-component vector of float) -0:276 'inF0' (in 4-component vector of float) -0:277 dPdyCoarse (global 4-component vector of float) -0:277 'inF0' (in 4-component vector of float) -0:278 dPdyFine (global 4-component vector of float) -0:278 'inF0' (in 4-component vector of float) -0:279 degrees (global 4-component vector of float) -0:279 'inF0' (in 4-component vector of float) -0:280 distance (global float) -0:280 'inF0' (in 4-component vector of float) -0:280 'inF1' (in 4-component vector of float) -0:281 dot-product (global float) -0:281 'inF0' (in 4-component vector of float) -0:281 'inF1' (in 4-component vector of float) -0:282 Construct vec4 (temp 4-component vector of float) -0:282 Constant: -0:282 1.000000 -0:282 component-wise multiply (temp float) -0:282 direct index (temp float) +0:262 Sequence +0:262 move second child to first child (temp bool) +0:262 'r000' (temp bool) +0:262 all (global bool) +0:262 'inF0' (in 4-component vector of float) +0:263 Sequence +0:263 move second child to first child (temp 4-component vector of float) +0:263 'r001' (temp 4-component vector of float) +0:263 Absolute value (global 4-component vector of float) +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 'r002' (temp 4-component vector of float) +0:264 arc cosine (global 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 bool) +0:265 'r003' (temp bool) +0:265 any (global bool) +0:265 'inF0' (in 4-component vector of float) +0:266 Sequence +0:266 move second child to first child (temp 4-component vector of float) +0:266 'r004' (temp 4-component vector of float) +0:266 arc sine (global 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 int) +0:267 'r005' (temp 4-component vector of int) +0:267 floatBitsToInt (global 4-component vector of int) +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 uint) +0:268 'r006' (temp 4-component vector of uint) +0:268 floatBitsToUint (global 4-component vector of uint) +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 float) +0:269 'r007' (temp 4-component vector of float) +0:269 intBitsToFloat (global 4-component vector of float) +0:269 'inU0' (in 4-component vector of uint) +0:271 Sequence +0:271 move second child to first child (temp 4-component vector of float) +0:271 'r009' (temp 4-component vector of float) +0:271 arc tangent (global 4-component vector of float) +0:271 'inF0' (in 4-component vector of float) +0:272 Sequence +0:272 move second child to first child (temp 4-component vector of float) +0:272 'r010' (temp 4-component vector of float) +0:272 arc tangent (global 4-component vector of float) +0:272 'inF0' (in 4-component vector of float) +0:272 'inF1' (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 'r011' (temp 4-component vector of float) +0:273 Ceiling (global 4-component vector of float) +0:273 'inF0' (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 'r012' (temp 4-component vector of float) +0:274 clamp (global 4-component vector of float) +0:274 'inF0' (in 4-component vector of float) +0:274 'inF1' (in 4-component vector of float) +0:274 'inF2' (in 4-component vector of float) +0:275 Test condition and select (temp void) +0:275 Condition +0:275 any (temp bool) +0:275 Compare Less Than (temp 4-component vector of bool) +0:275 'inF0' (in 4-component vector of float) +0:275 Constant: +0:275 0.000000 +0:275 0.000000 +0:275 0.000000 +0:275 0.000000 +0:275 true case +0:275 Branch: Kill +0:276 Sequence +0:276 move second child to first child (temp 4-component vector of float) +0:276 'r013' (temp 4-component vector of float) +0:276 cosine (global 4-component vector of float) +0:276 'inF0' (in 4-component vector of float) +0:277 Sequence +0:277 move second child to first child (temp 4-component vector of float) +0:277 'r014' (temp 4-component vector of float) +0:277 hyp. cosine (global 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 uint) +0:278 'r015' (temp 4-component vector of uint) +0:? bitCount (global 4-component vector of uint) +0:? Constant: +0:? 7 (const uint) +0:? 3 (const uint) +0:? 5 (const uint) +0:? 2 (const uint) +0:279 Sequence +0:279 move second child to first child (temp 4-component vector of float) +0:279 'r016' (temp 4-component vector of float) +0:279 dPdx (global 4-component vector of float) +0:279 'inF0' (in 4-component vector of float) +0:280 Sequence +0:280 move second child to first child (temp 4-component vector of float) +0:280 'r017' (temp 4-component vector of float) +0:280 dPdxCoarse (global 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 'r018' (temp 4-component vector of float) +0:281 dPdxFine (global 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 'r019' (temp 4-component vector of float) +0:282 dPdy (global 4-component vector of float) 0:282 'inF0' (in 4-component vector of float) -0:282 Constant: -0:282 1 (const int) -0:282 direct index (temp float) -0:282 'inF1' (in 4-component vector of float) -0:282 Constant: -0:282 1 (const int) -0:282 direct index (temp float) -0:282 'inF0' (in 4-component vector of float) -0:282 Constant: -0:282 2 (const int) -0:282 direct index (temp float) -0:282 'inF1' (in 4-component vector of float) -0:282 Constant: -0:282 3 (const int) -0:286 exp (global 4-component vector of float) -0:286 'inF0' (in 4-component vector of float) -0:287 exp2 (global 4-component vector of float) -0:287 'inF0' (in 4-component vector of float) -0:288 face-forward (global 4-component vector of float) -0:288 'inF0' (in 4-component vector of float) -0:288 'inF1' (in 4-component vector of float) -0:288 'inF2' (in 4-component vector of float) -0:289 findMSB (global int) -0:289 Constant: -0:289 7 (const int) -0:290 findLSB (global int) -0:290 Constant: -0:290 7 (const int) -0:291 Floor (global 4-component vector of float) -0:291 'inF0' (in 4-component vector of float) -0:293 mod (global 4-component vector of float) -0:293 'inF0' (in 4-component vector of float) -0:293 'inF1' (in 4-component vector of float) -0:294 Fraction (global 4-component vector of float) -0:294 'inF0' (in 4-component vector of float) -0:295 frexp (global 4-component vector of float) -0:295 'inF0' (in 4-component vector of float) -0:295 'inF1' (in 4-component vector of float) -0:296 fwidth (global 4-component vector of float) -0:296 'inF0' (in 4-component vector of float) -0:297 isinf (global 4-component vector of bool) -0:297 'inF0' (in 4-component vector of float) -0:298 isnan (global 4-component vector of bool) -0:298 'inF0' (in 4-component vector of float) -0:299 ldexp (global 4-component vector of float) -0:299 'inF0' (in 4-component vector of float) -0:299 'inF1' (in 4-component vector of float) -0:300 length (global float) -0:300 'inF0' (in 4-component vector of float) -0:301 log (global 4-component vector of float) -0:301 'inF0' (in 4-component vector of float) -0:302 vector-scale (temp 4-component vector of float) -0:302 log2 (temp 4-component vector of float) -0:302 'inF0' (in 4-component vector of float) -0:302 Constant: -0:302 0.301030 -0:303 log2 (global 4-component vector of float) -0:303 'inF0' (in 4-component vector of float) -0:304 max (global 4-component vector of float) -0:304 'inF0' (in 4-component vector of float) -0:304 'inF1' (in 4-component vector of float) -0:305 min (global 4-component vector of float) -0:305 'inF0' (in 4-component vector of float) -0:305 'inF1' (in 4-component vector of float) -0:306 normalize (global 4-component vector of float) -0:306 'inF0' (in 4-component vector of float) -0:307 pow (global 4-component vector of float) -0:307 'inF0' (in 4-component vector of float) -0:307 'inF1' (in 4-component vector of float) -0:308 radians (global 4-component vector of float) -0:308 'inF0' (in 4-component vector of float) -0:309 divide (temp 4-component vector of float) -0:309 Constant: -0:309 1.000000 -0:309 'inF0' (in 4-component vector of float) -0:310 reflect (global 4-component vector of float) -0:310 'inF0' (in 4-component vector of float) -0:310 'inF1' (in 4-component vector of float) -0:311 refract (global 4-component vector of float) -0:311 'inF0' (in 4-component vector of float) -0:311 'inF1' (in 4-component vector of float) -0:311 Constant: -0:311 2.000000 -0:? bitFieldReverse (global 4-component vector of uint) -0:? Constant: -0:? 1 (const uint) -0:? 2 (const uint) -0:? 3 (const uint) -0:? 4 (const uint) -0:313 roundEven (global 4-component vector of float) -0:313 'inF0' (in 4-component vector of float) -0:314 inverse sqrt (global 4-component vector of float) -0:314 'inF0' (in 4-component vector of float) -0:315 clamp (temp 4-component vector of float) -0:315 'inF0' (in 4-component vector of float) -0:315 Constant: -0:315 0.000000 -0:315 Constant: -0:315 1.000000 -0:316 Sign (global 4-component vector of float) -0:316 'inF0' (in 4-component vector of float) -0:317 sine (global 4-component vector of float) -0:317 '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 'r020' (temp 4-component vector of float) +0:283 dPdyCoarse (global 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 'r021' (temp 4-component vector of float) +0:284 dPdyFine (global 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 'r022' (temp 4-component vector of float) +0:285 degrees (global 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 float) +0:286 'r023' (temp float) +0:286 distance (global float) +0:286 'inF0' (in 4-component vector of float) +0:286 'inF1' (in 4-component vector of float) +0:287 Sequence +0:287 move second child to first child (temp float) +0:287 'r024' (temp float) +0:287 dot-product (global 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 4-component vector of float) +0:288 'r025' (temp 4-component vector of float) +0:288 Construct vec4 (temp 4-component vector of float) +0:288 Constant: +0:288 1.000000 +0:288 component-wise multiply (temp float) +0:288 direct index (temp float) +0:288 'inF0' (in 4-component vector of float) +0:288 Constant: +0:288 1 (const int) +0:288 direct index (temp float) +0:288 'inF1' (in 4-component vector of float) +0:288 Constant: +0:288 1 (const int) +0:288 direct index (temp float) +0:288 'inF0' (in 4-component vector of float) +0:288 Constant: +0:288 2 (const int) +0:288 direct index (temp float) +0:288 'inF1' (in 4-component vector of float) +0:288 Constant: +0:288 3 (const int) +0:292 Sequence +0:292 move second child to first child (temp 4-component vector of float) +0:292 'r029' (temp 4-component vector of float) +0:292 exp (global 4-component vector of float) +0:292 'inF0' (in 4-component vector of float) +0:293 Sequence +0:293 move second child to first child (temp 4-component vector of float) +0:293 'r030' (temp 4-component vector of float) +0:293 exp2 (global 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 'r031' (temp 4-component vector of float) +0:294 face-forward (global 4-component vector of float) +0:294 'inF0' (in 4-component vector of float) +0:294 'inF1' (in 4-component vector of float) +0:294 'inF2' (in 4-component vector of float) +0:295 Sequence +0:295 move second child to first child (temp 4-component vector of uint) +0:295 'r032' (temp 4-component vector of uint) +0:? findMSB (global 4-component vector of uint) +0:? Constant: +0:? 7 (const uint) +0:? 8 (const uint) +0:? 9 (const uint) +0:? 10 (const uint) +0:296 Sequence +0:296 move second child to first child (temp 4-component vector of uint) +0:296 'r033' (temp 4-component vector of uint) +0:? findLSB (global 4-component vector of uint) +0:? Constant: +0:? 7 (const uint) +0:? 8 (const uint) +0:? 9 (const uint) +0:? 10 (const uint) +0:297 Sequence +0:297 move second child to first child (temp 4-component vector of float) +0:297 'r034' (temp 4-component vector of float) +0:297 Floor (global 4-component vector of float) +0:297 'inF0' (in 4-component vector of float) +0:299 Sequence +0:299 move second child to first child (temp 4-component vector of float) +0:299 'r036' (temp 4-component vector of float) +0:299 mod (global 4-component vector of float) +0:299 'inF0' (in 4-component vector of float) +0:299 'inF1' (in 4-component vector of float) +0:300 Sequence +0:300 move second child to first child (temp 4-component vector of float) +0:300 'r037' (temp 4-component vector of float) +0:300 Fraction (global 4-component vector of float) +0:300 'inF0' (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 'r038' (temp 4-component vector of float) +0:301 frexp (global 4-component vector of float) +0:301 'inF0' (in 4-component vector of float) +0:301 'inF1' (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 'r039' (temp 4-component vector of float) +0:302 fwidth (global 4-component vector of float) +0:302 'inF0' (in 4-component vector of float) +0:303 Sequence +0:303 move second child to first child (temp 4-component vector of bool) +0:303 'r040' (temp 4-component vector of bool) +0:303 isinf (global 4-component vector of bool) +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 'r041' (temp 4-component vector of bool) +0:304 isnan (global 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 float) +0:305 'r042' (temp 4-component vector of float) +0:305 ldexp (global 4-component vector of float) +0:305 'inF0' (in 4-component vector of float) +0:305 'inF1' (in 4-component vector of float) +0:306 Sequence +0:306 move second child to first child (temp 4-component vector of float) +0:306 'r039a' (temp 4-component vector of float) +0:306 mix (global 4-component vector of float) +0:306 'inF0' (in 4-component vector of float) +0:306 'inF1' (in 4-component vector of float) +0:306 'inF2' (in 4-component vector of float) +0:307 Sequence +0:307 move second child to first child (temp float) +0:307 'r043' (temp float) +0:307 length (global float) +0:307 'inF0' (in 4-component vector of float) +0:308 Sequence +0:308 move second child to first child (temp 4-component vector of float) +0:308 'r044' (temp 4-component vector of float) +0:308 log (global 4-component vector of 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 'r045' (temp 4-component vector of float) +0:309 vector-scale (temp 4-component vector of float) +0:309 log2 (temp 4-component vector of float) +0:309 'inF0' (in 4-component vector of float) +0:309 Constant: +0:309 0.301030 +0:310 Sequence +0:310 move second child to first child (temp 4-component vector of float) +0:310 'r046' (temp 4-component vector of float) +0:310 log2 (global 4-component vector of float) +0:310 'inF0' (in 4-component vector of float) +0:311 Sequence +0:311 move second child to first child (temp 4-component vector of float) +0:311 'r047' (temp 4-component vector of float) +0:311 max (global 4-component vector of float) +0:311 'inF0' (in 4-component vector of float) +0:311 'inF1' (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 'r048' (temp 4-component vector of float) +0:312 min (global 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 'r049' (temp 4-component vector of float) +0:313 normalize (global 4-component vector of float) +0:313 'inF0' (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 'r050' (temp 4-component vector of float) +0:314 pow (global 4-component vector of float) +0:314 'inF0' (in 4-component vector of float) +0:314 'inF1' (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 'r051' (temp 4-component vector of float) +0:315 radians (global 4-component vector of float) +0:315 'inF0' (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 'r052' (temp 4-component vector of float) +0:316 divide (temp 4-component vector of float) +0:316 Constant: +0:316 1.000000 +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) +0:317 'r053' (temp 4-component vector of float) +0:317 reflect (global 4-component vector of float) +0:317 'inF0' (in 4-component vector of float) +0:317 'inF1' (in 4-component vector of float) 0:318 Sequence 0:318 move second child to first child (temp 4-component vector of float) -0:318 'inF1' (in 4-component vector of float) -0:318 sine (temp 4-component vector of float) +0:318 'r054' (temp 4-component vector of float) +0:318 refract (global 4-component vector of float) 0:318 'inF0' (in 4-component vector of float) -0:318 move second child to first child (temp 4-component vector of float) -0:318 'inF2' (in 4-component vector of float) -0:318 cosine (temp 4-component vector of float) -0:318 'inF0' (in 4-component vector of float) -0:319 hyp. sine (global 4-component vector of float) -0:319 'inF0' (in 4-component vector of float) -0:320 smoothstep (global 4-component vector of float) -0:320 'inF0' (in 4-component vector of float) -0:320 'inF1' (in 4-component vector of float) -0:320 'inF2' (in 4-component vector of float) -0:321 sqrt (global 4-component vector of float) -0:321 'inF0' (in 4-component vector of float) -0:322 step (global 4-component vector of float) -0:322 'inF0' (in 4-component vector of float) -0:322 'inF1' (in 4-component vector of float) -0:323 tangent (global 4-component vector of float) -0:323 'inF0' (in 4-component vector of float) -0:324 hyp. tangent (global 4-component vector of float) -0:324 'inF0' (in 4-component vector of float) -0:326 trunc (global 4-component vector of float) -0:326 'inF0' (in 4-component vector of float) -0:329 Branch: Return with expression +0:318 'inF1' (in 4-component vector of float) +0:318 Constant: +0:318 2.000000 +0:319 Sequence +0:319 move second child to first child (temp 4-component vector of uint) +0:319 'r055' (temp 4-component vector of uint) +0:? bitFieldReverse (global 4-component vector of uint) +0:? Constant: +0:? 1 (const uint) +0:? 2 (const uint) +0:? 3 (const uint) +0:? 4 (const uint) +0:320 Sequence +0:320 move second child to first child (temp 4-component vector of float) +0:320 'r056' (temp 4-component vector of float) +0:320 roundEven (global 4-component vector of float) +0:320 'inF0' (in 4-component vector of float) +0:321 Sequence +0:321 move second child to first child (temp 4-component vector of float) +0:321 'r057' (temp 4-component vector of float) +0:321 inverse sqrt (global 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 'r058' (temp 4-component vector of float) +0:322 clamp (temp 4-component vector of float) +0:322 'inF0' (in 4-component vector of float) +0:322 Constant: +0:322 0.000000 +0:322 Constant: +0:322 1.000000 +0:323 Sequence +0:323 move second child to first child (temp 4-component vector of float) +0:323 'r059' (temp 4-component vector of float) +0:323 Sign (global 4-component vector of float) +0:323 'inF0' (in 4-component vector of float) +0:324 Sequence +0:324 move second child to first child (temp 4-component vector of float) +0:324 'r060' (temp 4-component vector of float) +0:324 sine (global 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 'inF1' (in 4-component vector of float) +0:325 sine (temp 4-component vector of float) +0:325 'inF0' (in 4-component vector of float) +0:325 move second child to first child (temp 4-component vector of float) +0:325 'inF2' (in 4-component vector of float) +0:325 cosine (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) +0:326 'r061' (temp 4-component vector of float) +0:326 hyp. sine (global 4-component vector of float) +0:326 'inF0' (in 4-component vector of float) +0:327 Sequence +0:327 move second child to first child (temp 4-component vector of float) +0:327 'r062' (temp 4-component vector of float) +0:327 smoothstep (global 4-component vector of float) +0:327 'inF0' (in 4-component vector of float) +0:327 'inF1' (in 4-component vector of float) +0:327 'inF2' (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 'r063' (temp 4-component vector of float) +0:328 sqrt (global 4-component vector of float) +0:328 'inF0' (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 'r064' (temp 4-component vector of float) +0:329 step (global 4-component vector of float) +0:329 'inF0' (in 4-component vector of float) +0:329 'inF1' (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 'r065' (temp 4-component vector of float) +0:330 tangent (global 4-component vector of float) +0:330 'inF0' (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 'r066' (temp 4-component vector of float) +0:331 hyp. tangent (global 4-component vector of float) +0:331 'inF0' (in 4-component vector of float) +0:333 Sequence +0:333 move second child to first child (temp 4-component vector of float) +0:333 'r067' (temp 4-component vector of float) +0:333 trunc (global 4-component vector of float) +0:333 'inF0' (in 4-component vector of float) +0:336 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 0:? 4.000000 -0:402 Function Definition: PixelShaderFunction(mf22;mf22;mf22; (temp 2X2 matrix of float) -0:394 Function Parameters: -0:394 'inF0' (in 2X2 matrix of float) -0:394 'inF1' (in 2X2 matrix of float) -0:394 'inF2' (in 2X2 matrix of float) +0:408 Function Definition: PixelShaderFunction2x2(mf22;mf22;mf22; (global 2X2 matrix of float) +0:400 Function Parameters: +0:400 'inF0' (in 2X2 matrix of float) +0:400 'inF1' (in 2X2 matrix of float) +0:400 'inF2' (in 2X2 matrix of float) 0:? Sequence -0:396 all (global bool) -0:396 'inF0' (in 2X2 matrix of float) -0:396 Absolute value (global 2X2 matrix of float) -0:396 'inF0' (in 2X2 matrix of float) -0:396 arc cosine (global 2X2 matrix of float) -0:396 'inF0' (in 2X2 matrix of float) -0:396 any (global bool) -0:396 'inF0' (in 2X2 matrix of float) -0:396 arc sine (global 2X2 matrix of float) -0:396 'inF0' (in 2X2 matrix of float) -0:396 arc tangent (global 2X2 matrix of float) -0:396 'inF0' (in 2X2 matrix of float) -0:396 arc tangent (global 2X2 matrix of float) -0:396 'inF0' (in 2X2 matrix of float) -0:396 'inF1' (in 2X2 matrix of float) -0:396 Ceiling (global 2X2 matrix of float) -0:396 'inF0' (in 2X2 matrix of float) -0:396 Test condition and select (temp void) -0:396 Condition -0:396 any (temp bool) -0:396 Compare Less Than (temp 2X2 matrix of bool) -0:396 'inF0' (in 2X2 matrix of float) -0:396 Constant: -0:396 0.000000 -0:396 0.000000 -0:396 0.000000 -0:396 0.000000 -0:396 true case -0:396 Branch: Kill -0:396 clamp (global 2X2 matrix of float) -0:396 'inF0' (in 2X2 matrix of float) -0:396 'inF1' (in 2X2 matrix of float) -0:396 'inF2' (in 2X2 matrix of float) -0:396 cosine (global 2X2 matrix of float) -0:396 'inF0' (in 2X2 matrix of float) -0:396 hyp. cosine (global 2X2 matrix of float) -0:396 'inF0' (in 2X2 matrix of float) -0:396 dPdx (global 2X2 matrix of float) -0:396 'inF0' (in 2X2 matrix of float) -0:396 dPdxCoarse (global 2X2 matrix of float) -0:396 'inF0' (in 2X2 matrix of float) -0:396 dPdxFine (global 2X2 matrix of float) -0:396 'inF0' (in 2X2 matrix of float) -0:396 dPdy (global 2X2 matrix of float) -0:396 'inF0' (in 2X2 matrix of float) -0:396 dPdyCoarse (global 2X2 matrix of float) -0:396 'inF0' (in 2X2 matrix of float) -0:396 dPdyFine (global 2X2 matrix of float) -0:396 'inF0' (in 2X2 matrix of float) -0:396 degrees (global 2X2 matrix of float) -0:396 'inF0' (in 2X2 matrix of float) -0:396 determinant (global float) -0:396 'inF0' (in 2X2 matrix of float) -0:396 exp (global 2X2 matrix of float) -0:396 'inF0' (in 2X2 matrix of float) -0:396 exp2 (global 2X2 matrix of float) -0:396 'inF0' (in 2X2 matrix of float) -0:396 findMSB (global int) -0:396 Constant: -0:396 7 (const int) -0:396 findLSB (global int) -0:396 Constant: -0:396 7 (const int) -0:396 Floor (global 2X2 matrix of float) -0:396 'inF0' (in 2X2 matrix of float) -0:396 mod (global 2X2 matrix of float) -0:396 'inF0' (in 2X2 matrix of float) -0:396 'inF1' (in 2X2 matrix of float) -0:396 Fraction (global 2X2 matrix of float) -0:396 'inF0' (in 2X2 matrix of float) -0:396 frexp (global 2X2 matrix of float) -0:396 'inF0' (in 2X2 matrix of float) -0:396 'inF1' (in 2X2 matrix of float) -0:396 fwidth (global 2X2 matrix of float) -0:396 'inF0' (in 2X2 matrix of float) -0:396 ldexp (global 2X2 matrix of float) -0:396 'inF0' (in 2X2 matrix of float) -0:396 'inF1' (in 2X2 matrix of float) -0:396 log (global 2X2 matrix of float) -0:396 'inF0' (in 2X2 matrix of float) -0:396 matrix-scale (temp 2X2 matrix of float) -0:396 log2 (temp 2X2 matrix of float) -0:396 'inF0' (in 2X2 matrix of float) -0:396 Constant: -0:396 0.301030 -0:396 log2 (global 2X2 matrix of float) -0:396 'inF0' (in 2X2 matrix of float) -0:396 max (global 2X2 matrix of float) -0:396 'inF0' (in 2X2 matrix of float) -0:396 'inF1' (in 2X2 matrix of float) -0:396 min (global 2X2 matrix of float) -0:396 'inF0' (in 2X2 matrix of float) -0:396 'inF1' (in 2X2 matrix of float) -0:396 pow (global 2X2 matrix of float) -0:396 'inF0' (in 2X2 matrix of float) -0:396 'inF1' (in 2X2 matrix of float) -0:396 radians (global 2X2 matrix of float) -0:396 'inF0' (in 2X2 matrix of float) -0:396 roundEven (global 2X2 matrix of float) -0:396 'inF0' (in 2X2 matrix of float) -0:396 inverse sqrt (global 2X2 matrix of float) -0:396 'inF0' (in 2X2 matrix of float) -0:396 clamp (temp 2X2 matrix of float) -0:396 'inF0' (in 2X2 matrix of float) -0:396 Constant: -0:396 0.000000 -0:396 Constant: -0:396 1.000000 -0:396 Sign (global 2X2 matrix of float) -0:396 'inF0' (in 2X2 matrix of float) -0:396 sine (global 2X2 matrix of float) -0:396 'inF0' (in 2X2 matrix of float) -0:396 Sequence -0:396 move second child to first child (temp 2X2 matrix of float) -0:396 'inF1' (in 2X2 matrix of float) -0:396 sine (temp 2X2 matrix of float) -0:396 'inF0' (in 2X2 matrix of float) -0:396 move second child to first child (temp 2X2 matrix of float) -0:396 'inF2' (in 2X2 matrix of float) -0:396 cosine (temp 2X2 matrix of float) -0:396 'inF0' (in 2X2 matrix of float) -0:396 hyp. sine (global 2X2 matrix of float) -0:396 'inF0' (in 2X2 matrix of float) -0:396 smoothstep (global 2X2 matrix of float) -0:396 'inF0' (in 2X2 matrix of float) -0:396 'inF1' (in 2X2 matrix of float) -0:396 'inF2' (in 2X2 matrix of float) -0:396 sqrt (global 2X2 matrix of float) -0:396 'inF0' (in 2X2 matrix of float) -0:396 step (global 2X2 matrix of float) -0:396 'inF0' (in 2X2 matrix of float) -0:396 'inF1' (in 2X2 matrix of float) -0:396 tangent (global 2X2 matrix of float) -0:396 'inF0' (in 2X2 matrix of float) -0:396 hyp. tangent (global 2X2 matrix of float) -0:396 'inF0' (in 2X2 matrix of float) -0:396 transpose (global 2X2 matrix of float) -0:396 'inF0' (in 2X2 matrix of float) -0:396 trunc (global 2X2 matrix of float) -0:396 'inF0' (in 2X2 matrix of float) -0:399 Branch: Return with expression +0:402 Sequence +0:402 move second child to first child (temp bool) +0:402 'r000' (temp bool) +0:402 all (global bool) +0:402 'inF0' (in 2X2 matrix of float) +0:402 Sequence +0:402 move second child to first child (temp 2X2 matrix of float) +0:402 'r001' (temp 2X2 matrix of float) +0:402 Absolute value (global 2X2 matrix of float) +0:402 'inF0' (in 2X2 matrix of float) +0:402 arc cosine (global 2X2 matrix of float) +0:402 'inF0' (in 2X2 matrix of float) +0:402 Sequence +0:402 move second child to first child (temp bool) +0:402 'r003' (temp bool) +0:402 any (global bool) +0:402 'inF0' (in 2X2 matrix of float) +0:402 Sequence +0:402 move second child to first child (temp 2X2 matrix of float) +0:402 'r004' (temp 2X2 matrix of float) +0:402 arc sine (global 2X2 matrix of float) +0:402 'inF0' (in 2X2 matrix of float) +0:402 Sequence +0:402 move second child to first child (temp 2X2 matrix of float) +0:402 'r005' (temp 2X2 matrix of float) +0:402 arc tangent (global 2X2 matrix of float) +0:402 'inF0' (in 2X2 matrix of float) +0:402 Sequence +0:402 move second child to first child (temp 2X2 matrix of float) +0:402 'r006' (temp 2X2 matrix of float) +0:402 arc tangent (global 2X2 matrix of float) +0:402 'inF0' (in 2X2 matrix of float) +0:402 'inF1' (in 2X2 matrix of float) +0:402 Sequence +0:402 move second child to first child (temp 2X2 matrix of float) +0:402 'r007' (temp 2X2 matrix of float) +0:402 Ceiling (global 2X2 matrix of float) +0:402 'inF0' (in 2X2 matrix of float) +0:402 Test condition and select (temp void) +0:402 Condition +0:402 any (temp bool) +0:402 Compare Less Than (temp 2X2 matrix of bool) +0:402 'inF0' (in 2X2 matrix of float) +0:402 Constant: +0:402 0.000000 +0:402 0.000000 +0:402 0.000000 +0:402 0.000000 +0:402 true case +0:402 Branch: Kill +0:402 Sequence +0:402 move second child to first child (temp 2X2 matrix of float) +0:402 'r008' (temp 2X2 matrix of float) +0:402 clamp (global 2X2 matrix of float) +0:402 'inF0' (in 2X2 matrix of float) +0:402 'inF1' (in 2X2 matrix of float) +0:402 'inF2' (in 2X2 matrix of float) +0:402 Sequence +0:402 move second child to first child (temp 2X2 matrix of float) +0:402 'r009' (temp 2X2 matrix of float) +0:402 cosine (global 2X2 matrix of float) +0:402 'inF0' (in 2X2 matrix of float) +0:402 Sequence +0:402 move second child to first child (temp 2X2 matrix of float) +0:402 'r010' (temp 2X2 matrix of float) +0:402 hyp. cosine (global 2X2 matrix of float) +0:402 'inF0' (in 2X2 matrix of float) +0:402 Sequence +0:402 move second child to first child (temp 2X2 matrix of float) +0:402 'r011' (temp 2X2 matrix of float) +0:402 dPdx (global 2X2 matrix of float) +0:402 'inF0' (in 2X2 matrix of float) +0:402 Sequence +0:402 move second child to first child (temp 2X2 matrix of float) +0:402 'r012' (temp 2X2 matrix of float) +0:402 dPdxCoarse (global 2X2 matrix of float) +0:402 'inF0' (in 2X2 matrix of float) +0:402 Sequence +0:402 move second child to first child (temp 2X2 matrix of float) +0:402 'r013' (temp 2X2 matrix of float) +0:402 dPdxFine (global 2X2 matrix of float) +0:402 'inF0' (in 2X2 matrix of float) +0:402 Sequence +0:402 move second child to first child (temp 2X2 matrix of float) +0:402 'r014' (temp 2X2 matrix of float) +0:402 dPdy (global 2X2 matrix of float) +0:402 'inF0' (in 2X2 matrix of float) +0:402 Sequence +0:402 move second child to first child (temp 2X2 matrix of float) +0:402 'r015' (temp 2X2 matrix of float) +0:402 dPdyCoarse (global 2X2 matrix of float) +0:402 'inF0' (in 2X2 matrix of float) +0:402 Sequence +0:402 move second child to first child (temp 2X2 matrix of float) +0:402 'r016' (temp 2X2 matrix of float) +0:402 dPdyFine (global 2X2 matrix of float) +0:402 'inF0' (in 2X2 matrix of float) +0:402 Sequence +0:402 move second child to first child (temp 2X2 matrix of float) +0:402 'r017' (temp 2X2 matrix of float) +0:402 degrees (global 2X2 matrix of float) +0:402 'inF0' (in 2X2 matrix of float) +0:402 Sequence +0:402 move second child to first child (temp float) +0:402 'r018' (temp float) +0:402 determinant (global float) +0:402 'inF0' (in 2X2 matrix of float) +0:402 Sequence +0:402 move second child to first child (temp 2X2 matrix of float) +0:402 'r019' (temp 2X2 matrix of float) +0:402 exp (global 2X2 matrix of float) +0:402 'inF0' (in 2X2 matrix of float) +0:402 Sequence +0:402 move second child to first child (temp 2X2 matrix of float) +0:402 'R020' (temp 2X2 matrix of float) +0:402 exp2 (global 2X2 matrix of float) +0:402 'inF0' (in 2X2 matrix of float) +0:402 Sequence +0:402 move second child to first child (temp 2X2 matrix of float) +0:402 'r021' (temp 2X2 matrix of float) +0:402 Floor (global 2X2 matrix of float) +0:402 'inF0' (in 2X2 matrix of float) +0:402 Sequence +0:402 move second child to first child (temp 2X2 matrix of float) +0:402 'r022' (temp 2X2 matrix of float) +0:402 mod (global 2X2 matrix of float) +0:402 'inF0' (in 2X2 matrix of float) +0:402 'inF1' (in 2X2 matrix of float) +0:402 Sequence +0:402 move second child to first child (temp 2X2 matrix of float) +0:402 'r023' (temp 2X2 matrix of float) +0:402 Fraction (global 2X2 matrix of float) +0:402 'inF0' (in 2X2 matrix of float) +0:402 Sequence +0:402 move second child to first child (temp 2X2 matrix of float) +0:402 'r024' (temp 2X2 matrix of float) +0:402 frexp (global 2X2 matrix of float) +0:402 'inF0' (in 2X2 matrix of float) +0:402 'inF1' (in 2X2 matrix of float) +0:402 Sequence +0:402 move second child to first child (temp 2X2 matrix of float) +0:402 'r025' (temp 2X2 matrix of float) +0:402 fwidth (global 2X2 matrix of float) +0:402 'inF0' (in 2X2 matrix of float) +0:402 Sequence +0:402 move second child to first child (temp 2X2 matrix of float) +0:402 'r026' (temp 2X2 matrix of float) +0:402 ldexp (global 2X2 matrix of float) +0:402 'inF0' (in 2X2 matrix of float) +0:402 'inF1' (in 2X2 matrix of float) +0:402 Sequence +0:402 move second child to first child (temp 2X2 matrix of float) +0:402 'r026a' (temp 2X2 matrix of float) +0:402 mix (global 2X2 matrix of float) +0:402 'inF0' (in 2X2 matrix of float) +0:402 'inF1' (in 2X2 matrix of float) +0:402 'inF2' (in 2X2 matrix of float) +0:402 Sequence +0:402 move second child to first child (temp 2X2 matrix of float) +0:402 'r027' (temp 2X2 matrix of float) +0:402 log (global 2X2 matrix of float) +0:402 'inF0' (in 2X2 matrix of float) +0:402 Sequence +0:402 move second child to first child (temp 2X2 matrix of float) +0:402 'r028' (temp 2X2 matrix of float) +0:402 matrix-scale (temp 2X2 matrix of float) +0:402 log2 (temp 2X2 matrix of float) +0:402 'inF0' (in 2X2 matrix of float) +0:402 Constant: +0:402 0.301030 +0:402 Sequence +0:402 move second child to first child (temp 2X2 matrix of float) +0:402 'r029' (temp 2X2 matrix of float) +0:402 log2 (global 2X2 matrix of float) +0:402 'inF0' (in 2X2 matrix of float) +0:402 Sequence +0:402 move second child to first child (temp 2X2 matrix of float) +0:402 'r030' (temp 2X2 matrix of float) +0:402 max (global 2X2 matrix of float) +0:402 'inF0' (in 2X2 matrix of float) +0:402 'inF1' (in 2X2 matrix of float) +0:402 Sequence +0:402 move second child to first child (temp 2X2 matrix of float) +0:402 'r031' (temp 2X2 matrix of float) +0:402 min (global 2X2 matrix of float) +0:402 'inF0' (in 2X2 matrix of float) +0:402 'inF1' (in 2X2 matrix of float) +0:402 Sequence +0:402 move second child to first child (temp 2X2 matrix of float) +0:402 'r032' (temp 2X2 matrix of float) +0:402 pow (global 2X2 matrix of float) +0:402 'inF0' (in 2X2 matrix of float) +0:402 'inF1' (in 2X2 matrix of float) +0:402 Sequence +0:402 move second child to first child (temp 2X2 matrix of float) +0:402 'r033' (temp 2X2 matrix of float) +0:402 radians (global 2X2 matrix of float) +0:402 'inF0' (in 2X2 matrix of float) +0:402 Sequence +0:402 move second child to first child (temp 2X2 matrix of float) +0:402 'r034' (temp 2X2 matrix of float) +0:402 roundEven (global 2X2 matrix of float) +0:402 'inF0' (in 2X2 matrix of float) +0:402 Sequence +0:402 move second child to first child (temp 2X2 matrix of float) +0:402 'r035' (temp 2X2 matrix of float) +0:402 inverse sqrt (global 2X2 matrix of float) +0:402 'inF0' (in 2X2 matrix of float) +0:402 Sequence +0:402 move second child to first child (temp 2X2 matrix of float) +0:402 'r036' (temp 2X2 matrix of float) +0:402 clamp (temp 2X2 matrix of float) +0:402 'inF0' (in 2X2 matrix of float) +0:402 Constant: +0:402 0.000000 +0:402 Constant: +0:402 1.000000 +0:402 Sequence +0:402 move second child to first child (temp 2X2 matrix of float) +0:402 'r037' (temp 2X2 matrix of float) +0:402 Sign (global 2X2 matrix of float) +0:402 'inF0' (in 2X2 matrix of float) +0:402 Sequence +0:402 move second child to first child (temp 2X2 matrix of float) +0:402 'r038' (temp 2X2 matrix of float) +0:402 sine (global 2X2 matrix of float) +0:402 'inF0' (in 2X2 matrix of float) +0:402 Sequence +0:402 move second child to first child (temp 2X2 matrix of float) +0:402 'inF1' (in 2X2 matrix of float) +0:402 sine (temp 2X2 matrix of float) +0:402 'inF0' (in 2X2 matrix of float) +0:402 move second child to first child (temp 2X2 matrix of float) +0:402 'inF2' (in 2X2 matrix of float) +0:402 cosine (temp 2X2 matrix of float) +0:402 'inF0' (in 2X2 matrix of float) +0:402 Sequence +0:402 move second child to first child (temp 2X2 matrix of float) +0:402 'r039' (temp 2X2 matrix of float) +0:402 hyp. sine (global 2X2 matrix of float) +0:402 'inF0' (in 2X2 matrix of float) +0:402 Sequence +0:402 move second child to first child (temp 2X2 matrix of float) +0:402 'r049' (temp 2X2 matrix of float) +0:402 smoothstep (global 2X2 matrix of float) +0:402 'inF0' (in 2X2 matrix of float) +0:402 'inF1' (in 2X2 matrix of float) +0:402 'inF2' (in 2X2 matrix of float) +0:402 Sequence +0:402 move second child to first child (temp 2X2 matrix of float) +0:402 'r041' (temp 2X2 matrix of float) +0:402 sqrt (global 2X2 matrix of float) +0:402 'inF0' (in 2X2 matrix of float) +0:402 Sequence +0:402 move second child to first child (temp 2X2 matrix of float) +0:402 'r042' (temp 2X2 matrix of float) +0:402 step (global 2X2 matrix of float) +0:402 'inF0' (in 2X2 matrix of float) +0:402 'inF1' (in 2X2 matrix of float) +0:402 Sequence +0:402 move second child to first child (temp 2X2 matrix of float) +0:402 'r043' (temp 2X2 matrix of float) +0:402 tangent (global 2X2 matrix of float) +0:402 'inF0' (in 2X2 matrix of float) +0:402 Sequence +0:402 move second child to first child (temp 2X2 matrix of float) +0:402 'r044' (temp 2X2 matrix of float) +0:402 hyp. tangent (global 2X2 matrix of float) +0:402 'inF0' (in 2X2 matrix of float) +0:402 transpose (global 2X2 matrix of float) +0:402 'inF0' (in 2X2 matrix of float) +0:402 Sequence +0:402 move second child to first child (temp 2X2 matrix of float) +0:402 'r046' (temp 2X2 matrix of float) +0:402 trunc (global 2X2 matrix of float) +0:402 'inF0' (in 2X2 matrix of float) +0:405 Branch: Return with expression 0:? Constant: 0:? 2.000000 0:? 2.000000 0:? 2.000000 0:? 2.000000 -0:411 Function Definition: PixelShaderFunction(mf33;mf33;mf33; (temp 3X3 matrix of float) -0:403 Function Parameters: -0:403 'inF0' (in 3X3 matrix of float) -0:403 'inF1' (in 3X3 matrix of float) -0:403 'inF2' (in 3X3 matrix of float) +0:417 Function Definition: PixelShaderFunction3x3(mf33;mf33;mf33; (global 3X3 matrix of float) +0:409 Function Parameters: +0:409 'inF0' (in 3X3 matrix of float) +0:409 'inF1' (in 3X3 matrix of float) +0:409 'inF2' (in 3X3 matrix of float) 0:? Sequence -0:405 all (global bool) -0:405 'inF0' (in 3X3 matrix of float) -0:405 Absolute value (global 3X3 matrix of float) -0:405 'inF0' (in 3X3 matrix of float) -0:405 arc cosine (global 3X3 matrix of float) -0:405 'inF0' (in 3X3 matrix of float) -0:405 any (global bool) -0:405 'inF0' (in 3X3 matrix of float) -0:405 arc sine (global 3X3 matrix of float) -0:405 'inF0' (in 3X3 matrix of float) -0:405 arc tangent (global 3X3 matrix of float) -0:405 'inF0' (in 3X3 matrix of float) -0:405 arc tangent (global 3X3 matrix of float) -0:405 'inF0' (in 3X3 matrix of float) -0:405 'inF1' (in 3X3 matrix of float) -0:405 Ceiling (global 3X3 matrix of float) -0:405 'inF0' (in 3X3 matrix of float) -0:405 Test condition and select (temp void) -0:405 Condition -0:405 any (temp bool) -0:405 Compare Less Than (temp 3X3 matrix of bool) -0:405 'inF0' (in 3X3 matrix of float) -0:405 Constant: -0:405 0.000000 -0:405 0.000000 -0:405 0.000000 -0:405 0.000000 -0:405 0.000000 -0:405 0.000000 -0:405 0.000000 -0:405 0.000000 -0:405 0.000000 -0:405 true case -0:405 Branch: Kill -0:405 clamp (global 3X3 matrix of float) -0:405 'inF0' (in 3X3 matrix of float) -0:405 'inF1' (in 3X3 matrix of float) -0:405 'inF2' (in 3X3 matrix of float) -0:405 cosine (global 3X3 matrix of float) -0:405 'inF0' (in 3X3 matrix of float) -0:405 hyp. cosine (global 3X3 matrix of float) -0:405 'inF0' (in 3X3 matrix of float) -0:405 dPdx (global 3X3 matrix of float) -0:405 'inF0' (in 3X3 matrix of float) -0:405 dPdxCoarse (global 3X3 matrix of float) -0:405 'inF0' (in 3X3 matrix of float) -0:405 dPdxFine (global 3X3 matrix of float) -0:405 'inF0' (in 3X3 matrix of float) -0:405 dPdy (global 3X3 matrix of float) -0:405 'inF0' (in 3X3 matrix of float) -0:405 dPdyCoarse (global 3X3 matrix of float) -0:405 'inF0' (in 3X3 matrix of float) -0:405 dPdyFine (global 3X3 matrix of float) -0:405 'inF0' (in 3X3 matrix of float) -0:405 degrees (global 3X3 matrix of float) -0:405 'inF0' (in 3X3 matrix of float) -0:405 determinant (global float) -0:405 'inF0' (in 3X3 matrix of float) -0:405 exp (global 3X3 matrix of float) -0:405 'inF0' (in 3X3 matrix of float) -0:405 exp2 (global 3X3 matrix of float) -0:405 'inF0' (in 3X3 matrix of float) -0:405 findMSB (global int) -0:405 Constant: -0:405 7 (const int) -0:405 findLSB (global int) -0:405 Constant: -0:405 7 (const int) -0:405 Floor (global 3X3 matrix of float) -0:405 'inF0' (in 3X3 matrix of float) -0:405 mod (global 3X3 matrix of float) -0:405 'inF0' (in 3X3 matrix of float) -0:405 'inF1' (in 3X3 matrix of float) -0:405 Fraction (global 3X3 matrix of float) -0:405 'inF0' (in 3X3 matrix of float) -0:405 frexp (global 3X3 matrix of float) -0:405 'inF0' (in 3X3 matrix of float) -0:405 'inF1' (in 3X3 matrix of float) -0:405 fwidth (global 3X3 matrix of float) -0:405 'inF0' (in 3X3 matrix of float) -0:405 ldexp (global 3X3 matrix of float) -0:405 'inF0' (in 3X3 matrix of float) -0:405 'inF1' (in 3X3 matrix of float) -0:405 log (global 3X3 matrix of float) -0:405 'inF0' (in 3X3 matrix of float) -0:405 matrix-scale (temp 3X3 matrix of float) -0:405 log2 (temp 3X3 matrix of float) -0:405 'inF0' (in 3X3 matrix of float) -0:405 Constant: -0:405 0.301030 -0:405 log2 (global 3X3 matrix of float) -0:405 'inF0' (in 3X3 matrix of float) -0:405 max (global 3X3 matrix of float) -0:405 'inF0' (in 3X3 matrix of float) -0:405 'inF1' (in 3X3 matrix of float) -0:405 min (global 3X3 matrix of float) -0:405 'inF0' (in 3X3 matrix of float) -0:405 'inF1' (in 3X3 matrix of float) -0:405 pow (global 3X3 matrix of float) -0:405 'inF0' (in 3X3 matrix of float) -0:405 'inF1' (in 3X3 matrix of float) -0:405 radians (global 3X3 matrix of float) -0:405 'inF0' (in 3X3 matrix of float) -0:405 roundEven (global 3X3 matrix of float) -0:405 'inF0' (in 3X3 matrix of float) -0:405 inverse sqrt (global 3X3 matrix of float) -0:405 'inF0' (in 3X3 matrix of float) -0:405 clamp (temp 3X3 matrix of float) -0:405 'inF0' (in 3X3 matrix of float) -0:405 Constant: -0:405 0.000000 -0:405 Constant: -0:405 1.000000 -0:405 Sign (global 3X3 matrix of float) -0:405 'inF0' (in 3X3 matrix of float) -0:405 sine (global 3X3 matrix of float) -0:405 'inF0' (in 3X3 matrix of float) -0:405 Sequence -0:405 move second child to first child (temp 3X3 matrix of float) -0:405 'inF1' (in 3X3 matrix of float) -0:405 sine (temp 3X3 matrix of float) -0:405 'inF0' (in 3X3 matrix of float) -0:405 move second child to first child (temp 3X3 matrix of float) -0:405 'inF2' (in 3X3 matrix of float) -0:405 cosine (temp 3X3 matrix of float) -0:405 'inF0' (in 3X3 matrix of float) -0:405 hyp. sine (global 3X3 matrix of float) -0:405 'inF0' (in 3X3 matrix of float) -0:405 smoothstep (global 3X3 matrix of float) -0:405 'inF0' (in 3X3 matrix of float) -0:405 'inF1' (in 3X3 matrix of float) -0:405 'inF2' (in 3X3 matrix of float) -0:405 sqrt (global 3X3 matrix of float) -0:405 'inF0' (in 3X3 matrix of float) -0:405 step (global 3X3 matrix of float) -0:405 'inF0' (in 3X3 matrix of float) -0:405 'inF1' (in 3X3 matrix of float) -0:405 tangent (global 3X3 matrix of float) -0:405 'inF0' (in 3X3 matrix of float) -0:405 hyp. tangent (global 3X3 matrix of float) -0:405 'inF0' (in 3X3 matrix of float) -0:405 transpose (global 3X3 matrix of float) -0:405 'inF0' (in 3X3 matrix of float) -0:405 trunc (global 3X3 matrix of float) -0:405 'inF0' (in 3X3 matrix of float) -0:408 Branch: Return with expression +0:411 Sequence +0:411 move second child to first child (temp bool) +0:411 'r000' (temp bool) +0:411 all (global bool) +0:411 'inF0' (in 3X3 matrix of float) +0:411 Sequence +0:411 move second child to first child (temp 3X3 matrix of float) +0:411 'r001' (temp 3X3 matrix of float) +0:411 Absolute value (global 3X3 matrix of float) +0:411 'inF0' (in 3X3 matrix of float) +0:411 arc cosine (global 3X3 matrix of float) +0:411 'inF0' (in 3X3 matrix of float) +0:411 Sequence +0:411 move second child to first child (temp bool) +0:411 'r003' (temp bool) +0:411 any (global bool) +0:411 'inF0' (in 3X3 matrix of float) +0:411 Sequence +0:411 move second child to first child (temp 3X3 matrix of float) +0:411 'r004' (temp 3X3 matrix of float) +0:411 arc sine (global 3X3 matrix of float) +0:411 'inF0' (in 3X3 matrix of float) +0:411 Sequence +0:411 move second child to first child (temp 3X3 matrix of float) +0:411 'r005' (temp 3X3 matrix of float) +0:411 arc tangent (global 3X3 matrix of float) +0:411 'inF0' (in 3X3 matrix of float) +0:411 Sequence +0:411 move second child to first child (temp 3X3 matrix of float) +0:411 'r006' (temp 3X3 matrix of float) +0:411 arc tangent (global 3X3 matrix of float) +0:411 'inF0' (in 3X3 matrix of float) +0:411 'inF1' (in 3X3 matrix of float) +0:411 Sequence +0:411 move second child to first child (temp 3X3 matrix of float) +0:411 'r007' (temp 3X3 matrix of float) +0:411 Ceiling (global 3X3 matrix of float) +0:411 'inF0' (in 3X3 matrix of float) +0:411 Test condition and select (temp void) +0:411 Condition +0:411 any (temp bool) +0:411 Compare Less Than (temp 3X3 matrix of bool) +0:411 'inF0' (in 3X3 matrix of float) +0:411 Constant: +0:411 0.000000 +0:411 0.000000 +0:411 0.000000 +0:411 0.000000 +0:411 0.000000 +0:411 0.000000 +0:411 0.000000 +0:411 0.000000 +0:411 0.000000 +0:411 true case +0:411 Branch: Kill +0:411 Sequence +0:411 move second child to first child (temp 3X3 matrix of float) +0:411 'r008' (temp 3X3 matrix of float) +0:411 clamp (global 3X3 matrix of float) +0:411 'inF0' (in 3X3 matrix of float) +0:411 'inF1' (in 3X3 matrix of float) +0:411 'inF2' (in 3X3 matrix of float) +0:411 Sequence +0:411 move second child to first child (temp 3X3 matrix of float) +0:411 'r009' (temp 3X3 matrix of float) +0:411 cosine (global 3X3 matrix of float) +0:411 'inF0' (in 3X3 matrix of float) +0:411 Sequence +0:411 move second child to first child (temp 3X3 matrix of float) +0:411 'r010' (temp 3X3 matrix of float) +0:411 hyp. cosine (global 3X3 matrix of float) +0:411 'inF0' (in 3X3 matrix of float) +0:411 Sequence +0:411 move second child to first child (temp 3X3 matrix of float) +0:411 'r011' (temp 3X3 matrix of float) +0:411 dPdx (global 3X3 matrix of float) +0:411 'inF0' (in 3X3 matrix of float) +0:411 Sequence +0:411 move second child to first child (temp 3X3 matrix of float) +0:411 'r012' (temp 3X3 matrix of float) +0:411 dPdxCoarse (global 3X3 matrix of float) +0:411 'inF0' (in 3X3 matrix of float) +0:411 Sequence +0:411 move second child to first child (temp 3X3 matrix of float) +0:411 'r013' (temp 3X3 matrix of float) +0:411 dPdxFine (global 3X3 matrix of float) +0:411 'inF0' (in 3X3 matrix of float) +0:411 Sequence +0:411 move second child to first child (temp 3X3 matrix of float) +0:411 'r014' (temp 3X3 matrix of float) +0:411 dPdy (global 3X3 matrix of float) +0:411 'inF0' (in 3X3 matrix of float) +0:411 Sequence +0:411 move second child to first child (temp 3X3 matrix of float) +0:411 'r015' (temp 3X3 matrix of float) +0:411 dPdyCoarse (global 3X3 matrix of float) +0:411 'inF0' (in 3X3 matrix of float) +0:411 Sequence +0:411 move second child to first child (temp 3X3 matrix of float) +0:411 'r016' (temp 3X3 matrix of float) +0:411 dPdyFine (global 3X3 matrix of float) +0:411 'inF0' (in 3X3 matrix of float) +0:411 Sequence +0:411 move second child to first child (temp 3X3 matrix of float) +0:411 'r017' (temp 3X3 matrix of float) +0:411 degrees (global 3X3 matrix of float) +0:411 'inF0' (in 3X3 matrix of float) +0:411 Sequence +0:411 move second child to first child (temp float) +0:411 'r018' (temp float) +0:411 determinant (global float) +0:411 'inF0' (in 3X3 matrix of float) +0:411 Sequence +0:411 move second child to first child (temp 3X3 matrix of float) +0:411 'r019' (temp 3X3 matrix of float) +0:411 exp (global 3X3 matrix of float) +0:411 'inF0' (in 3X3 matrix of float) +0:411 Sequence +0:411 move second child to first child (temp 3X3 matrix of float) +0:411 'R020' (temp 3X3 matrix of float) +0:411 exp2 (global 3X3 matrix of float) +0:411 'inF0' (in 3X3 matrix of float) +0:411 Sequence +0:411 move second child to first child (temp 3X3 matrix of float) +0:411 'r021' (temp 3X3 matrix of float) +0:411 Floor (global 3X3 matrix of float) +0:411 'inF0' (in 3X3 matrix of float) +0:411 Sequence +0:411 move second child to first child (temp 3X3 matrix of float) +0:411 'r022' (temp 3X3 matrix of float) +0:411 mod (global 3X3 matrix of float) +0:411 'inF0' (in 3X3 matrix of float) +0:411 'inF1' (in 3X3 matrix of float) +0:411 Sequence +0:411 move second child to first child (temp 3X3 matrix of float) +0:411 'r023' (temp 3X3 matrix of float) +0:411 Fraction (global 3X3 matrix of float) +0:411 'inF0' (in 3X3 matrix of float) +0:411 Sequence +0:411 move second child to first child (temp 3X3 matrix of float) +0:411 'r024' (temp 3X3 matrix of float) +0:411 frexp (global 3X3 matrix of float) +0:411 'inF0' (in 3X3 matrix of float) +0:411 'inF1' (in 3X3 matrix of float) +0:411 Sequence +0:411 move second child to first child (temp 3X3 matrix of float) +0:411 'r025' (temp 3X3 matrix of float) +0:411 fwidth (global 3X3 matrix of float) +0:411 'inF0' (in 3X3 matrix of float) +0:411 Sequence +0:411 move second child to first child (temp 3X3 matrix of float) +0:411 'r026' (temp 3X3 matrix of float) +0:411 ldexp (global 3X3 matrix of float) +0:411 'inF0' (in 3X3 matrix of float) +0:411 'inF1' (in 3X3 matrix of float) +0:411 Sequence +0:411 move second child to first child (temp 3X3 matrix of float) +0:411 'r026a' (temp 3X3 matrix of float) +0:411 mix (global 3X3 matrix of float) +0:411 'inF0' (in 3X3 matrix of float) +0:411 'inF1' (in 3X3 matrix of float) +0:411 'inF2' (in 3X3 matrix of float) +0:411 Sequence +0:411 move second child to first child (temp 3X3 matrix of float) +0:411 'r027' (temp 3X3 matrix of float) +0:411 log (global 3X3 matrix of float) +0:411 'inF0' (in 3X3 matrix of float) +0:411 Sequence +0:411 move second child to first child (temp 3X3 matrix of float) +0:411 'r028' (temp 3X3 matrix of float) +0:411 matrix-scale (temp 3X3 matrix of float) +0:411 log2 (temp 3X3 matrix of float) +0:411 'inF0' (in 3X3 matrix of float) +0:411 Constant: +0:411 0.301030 +0:411 Sequence +0:411 move second child to first child (temp 3X3 matrix of float) +0:411 'r029' (temp 3X3 matrix of float) +0:411 log2 (global 3X3 matrix of float) +0:411 'inF0' (in 3X3 matrix of float) +0:411 Sequence +0:411 move second child to first child (temp 3X3 matrix of float) +0:411 'r030' (temp 3X3 matrix of float) +0:411 max (global 3X3 matrix of float) +0:411 'inF0' (in 3X3 matrix of float) +0:411 'inF1' (in 3X3 matrix of float) +0:411 Sequence +0:411 move second child to first child (temp 3X3 matrix of float) +0:411 'r031' (temp 3X3 matrix of float) +0:411 min (global 3X3 matrix of float) +0:411 'inF0' (in 3X3 matrix of float) +0:411 'inF1' (in 3X3 matrix of float) +0:411 Sequence +0:411 move second child to first child (temp 3X3 matrix of float) +0:411 'r032' (temp 3X3 matrix of float) +0:411 pow (global 3X3 matrix of float) +0:411 'inF0' (in 3X3 matrix of float) +0:411 'inF1' (in 3X3 matrix of float) +0:411 Sequence +0:411 move second child to first child (temp 3X3 matrix of float) +0:411 'r033' (temp 3X3 matrix of float) +0:411 radians (global 3X3 matrix of float) +0:411 'inF0' (in 3X3 matrix of float) +0:411 Sequence +0:411 move second child to first child (temp 3X3 matrix of float) +0:411 'r034' (temp 3X3 matrix of float) +0:411 roundEven (global 3X3 matrix of float) +0:411 'inF0' (in 3X3 matrix of float) +0:411 Sequence +0:411 move second child to first child (temp 3X3 matrix of float) +0:411 'r035' (temp 3X3 matrix of float) +0:411 inverse sqrt (global 3X3 matrix of float) +0:411 'inF0' (in 3X3 matrix of float) +0:411 Sequence +0:411 move second child to first child (temp 3X3 matrix of float) +0:411 'r036' (temp 3X3 matrix of float) +0:411 clamp (temp 3X3 matrix of float) +0:411 'inF0' (in 3X3 matrix of float) +0:411 Constant: +0:411 0.000000 +0:411 Constant: +0:411 1.000000 +0:411 Sequence +0:411 move second child to first child (temp 3X3 matrix of float) +0:411 'r037' (temp 3X3 matrix of float) +0:411 Sign (global 3X3 matrix of float) +0:411 'inF0' (in 3X3 matrix of float) +0:411 Sequence +0:411 move second child to first child (temp 3X3 matrix of float) +0:411 'r038' (temp 3X3 matrix of float) +0:411 sine (global 3X3 matrix of float) +0:411 'inF0' (in 3X3 matrix of float) +0:411 Sequence +0:411 move second child to first child (temp 3X3 matrix of float) +0:411 'inF1' (in 3X3 matrix of float) +0:411 sine (temp 3X3 matrix of float) +0:411 'inF0' (in 3X3 matrix of float) +0:411 move second child to first child (temp 3X3 matrix of float) +0:411 'inF2' (in 3X3 matrix of float) +0:411 cosine (temp 3X3 matrix of float) +0:411 'inF0' (in 3X3 matrix of float) +0:411 Sequence +0:411 move second child to first child (temp 3X3 matrix of float) +0:411 'r039' (temp 3X3 matrix of float) +0:411 hyp. sine (global 3X3 matrix of float) +0:411 'inF0' (in 3X3 matrix of float) +0:411 Sequence +0:411 move second child to first child (temp 3X3 matrix of float) +0:411 'r049' (temp 3X3 matrix of float) +0:411 smoothstep (global 3X3 matrix of float) +0:411 'inF0' (in 3X3 matrix of float) +0:411 'inF1' (in 3X3 matrix of float) +0:411 'inF2' (in 3X3 matrix of float) +0:411 Sequence +0:411 move second child to first child (temp 3X3 matrix of float) +0:411 'r041' (temp 3X3 matrix of float) +0:411 sqrt (global 3X3 matrix of float) +0:411 'inF0' (in 3X3 matrix of float) +0:411 Sequence +0:411 move second child to first child (temp 3X3 matrix of float) +0:411 'r042' (temp 3X3 matrix of float) +0:411 step (global 3X3 matrix of float) +0:411 'inF0' (in 3X3 matrix of float) +0:411 'inF1' (in 3X3 matrix of float) +0:411 Sequence +0:411 move second child to first child (temp 3X3 matrix of float) +0:411 'r043' (temp 3X3 matrix of float) +0:411 tangent (global 3X3 matrix of float) +0:411 'inF0' (in 3X3 matrix of float) +0:411 Sequence +0:411 move second child to first child (temp 3X3 matrix of float) +0:411 'r044' (temp 3X3 matrix of float) +0:411 hyp. tangent (global 3X3 matrix of float) +0:411 'inF0' (in 3X3 matrix of float) +0:411 transpose (global 3X3 matrix of float) +0:411 'inF0' (in 3X3 matrix of float) +0:411 Sequence +0:411 move second child to first child (temp 3X3 matrix of float) +0:411 'r046' (temp 3X3 matrix of float) +0:411 trunc (global 3X3 matrix of float) +0:411 'inF0' (in 3X3 matrix of float) +0:414 Branch: Return with expression 0:? Constant: 0:? 3.000000 0:? 3.000000 @@ -2543,165 +4906,301 @@ gl_FragCoord origin is upper left 0:? 3.000000 0:? 3.000000 0:? 3.000000 -0:432 Function Definition: PixelShaderFunction(mf44;mf44;mf44; (temp 4X4 matrix of float) -0:412 Function Parameters: -0:412 'inF0' (in 4X4 matrix of float) -0:412 'inF1' (in 4X4 matrix of float) -0:412 'inF2' (in 4X4 matrix of float) +0:438 Function Definition: PixelShaderFunction4x4(mf44;mf44;mf44; (global 4X4 matrix of float) +0:418 Function Parameters: +0:418 'inF0' (in 4X4 matrix of float) +0:418 'inF1' (in 4X4 matrix of float) +0:418 'inF2' (in 4X4 matrix of float) 0:? Sequence -0:414 all (global bool) -0:414 'inF0' (in 4X4 matrix of float) -0:414 Absolute value (global 4X4 matrix of float) -0:414 'inF0' (in 4X4 matrix of float) -0:414 arc cosine (global 4X4 matrix of float) -0:414 'inF0' (in 4X4 matrix of float) -0:414 any (global bool) -0:414 'inF0' (in 4X4 matrix of float) -0:414 arc sine (global 4X4 matrix of float) -0:414 'inF0' (in 4X4 matrix of float) -0:414 arc tangent (global 4X4 matrix of float) -0:414 'inF0' (in 4X4 matrix of float) -0:414 arc tangent (global 4X4 matrix of float) -0:414 'inF0' (in 4X4 matrix of float) -0:414 'inF1' (in 4X4 matrix of float) -0:414 Ceiling (global 4X4 matrix of float) -0:414 'inF0' (in 4X4 matrix of float) -0:414 Test condition and select (temp void) -0:414 Condition -0:414 any (temp bool) -0:414 Compare Less Than (temp 4X4 matrix of bool) -0:414 'inF0' (in 4X4 matrix of float) -0:414 Constant: -0:414 0.000000 -0:414 0.000000 -0:414 0.000000 -0:414 0.000000 -0:414 0.000000 -0:414 0.000000 -0:414 0.000000 -0:414 0.000000 -0:414 0.000000 -0:414 0.000000 -0:414 0.000000 -0:414 0.000000 -0:414 0.000000 -0:414 0.000000 -0:414 0.000000 -0:414 0.000000 -0:414 true case -0:414 Branch: Kill -0:414 clamp (global 4X4 matrix of float) -0:414 'inF0' (in 4X4 matrix of float) -0:414 'inF1' (in 4X4 matrix of float) -0:414 'inF2' (in 4X4 matrix of float) -0:414 cosine (global 4X4 matrix of float) -0:414 'inF0' (in 4X4 matrix of float) -0:414 hyp. cosine (global 4X4 matrix of float) -0:414 'inF0' (in 4X4 matrix of float) -0:414 dPdx (global 4X4 matrix of float) -0:414 'inF0' (in 4X4 matrix of float) -0:414 dPdxCoarse (global 4X4 matrix of float) -0:414 'inF0' (in 4X4 matrix of float) -0:414 dPdxFine (global 4X4 matrix of float) -0:414 'inF0' (in 4X4 matrix of float) -0:414 dPdy (global 4X4 matrix of float) -0:414 'inF0' (in 4X4 matrix of float) -0:414 dPdyCoarse (global 4X4 matrix of float) -0:414 'inF0' (in 4X4 matrix of float) -0:414 dPdyFine (global 4X4 matrix of float) -0:414 'inF0' (in 4X4 matrix of float) -0:414 degrees (global 4X4 matrix of float) -0:414 'inF0' (in 4X4 matrix of float) -0:414 determinant (global float) -0:414 'inF0' (in 4X4 matrix of float) -0:414 exp (global 4X4 matrix of float) -0:414 'inF0' (in 4X4 matrix of float) -0:414 exp2 (global 4X4 matrix of float) -0:414 'inF0' (in 4X4 matrix of float) -0:414 findMSB (global int) -0:414 Constant: -0:414 7 (const int) -0:414 findLSB (global int) -0:414 Constant: -0:414 7 (const int) -0:414 Floor (global 4X4 matrix of float) -0:414 'inF0' (in 4X4 matrix of float) -0:414 mod (global 4X4 matrix of float) -0:414 'inF0' (in 4X4 matrix of float) -0:414 'inF1' (in 4X4 matrix of float) -0:414 Fraction (global 4X4 matrix of float) -0:414 'inF0' (in 4X4 matrix of float) -0:414 frexp (global 4X4 matrix of float) -0:414 'inF0' (in 4X4 matrix of float) -0:414 'inF1' (in 4X4 matrix of float) -0:414 fwidth (global 4X4 matrix of float) -0:414 'inF0' (in 4X4 matrix of float) -0:414 ldexp (global 4X4 matrix of float) -0:414 'inF0' (in 4X4 matrix of float) -0:414 'inF1' (in 4X4 matrix of float) -0:414 log (global 4X4 matrix of float) -0:414 'inF0' (in 4X4 matrix of float) -0:414 matrix-scale (temp 4X4 matrix of float) -0:414 log2 (temp 4X4 matrix of float) -0:414 'inF0' (in 4X4 matrix of float) -0:414 Constant: -0:414 0.301030 -0:414 log2 (global 4X4 matrix of float) -0:414 'inF0' (in 4X4 matrix of float) -0:414 max (global 4X4 matrix of float) -0:414 'inF0' (in 4X4 matrix of float) -0:414 'inF1' (in 4X4 matrix of float) -0:414 min (global 4X4 matrix of float) -0:414 'inF0' (in 4X4 matrix of float) -0:414 'inF1' (in 4X4 matrix of float) -0:414 pow (global 4X4 matrix of float) -0:414 'inF0' (in 4X4 matrix of float) -0:414 'inF1' (in 4X4 matrix of float) -0:414 radians (global 4X4 matrix of float) -0:414 'inF0' (in 4X4 matrix of float) -0:414 roundEven (global 4X4 matrix of float) -0:414 'inF0' (in 4X4 matrix of float) -0:414 inverse sqrt (global 4X4 matrix of float) -0:414 'inF0' (in 4X4 matrix of float) -0:414 clamp (temp 4X4 matrix of float) -0:414 'inF0' (in 4X4 matrix of float) -0:414 Constant: -0:414 0.000000 -0:414 Constant: -0:414 1.000000 -0:414 Sign (global 4X4 matrix of float) -0:414 'inF0' (in 4X4 matrix of float) -0:414 sine (global 4X4 matrix of float) -0:414 'inF0' (in 4X4 matrix of float) -0:414 Sequence -0:414 move second child to first child (temp 4X4 matrix of float) -0:414 'inF1' (in 4X4 matrix of float) -0:414 sine (temp 4X4 matrix of float) -0:414 'inF0' (in 4X4 matrix of float) -0:414 move second child to first child (temp 4X4 matrix of float) -0:414 'inF2' (in 4X4 matrix of float) -0:414 cosine (temp 4X4 matrix of float) -0:414 'inF0' (in 4X4 matrix of float) -0:414 hyp. sine (global 4X4 matrix of float) -0:414 'inF0' (in 4X4 matrix of float) -0:414 smoothstep (global 4X4 matrix of float) -0:414 'inF0' (in 4X4 matrix of float) -0:414 'inF1' (in 4X4 matrix of float) -0:414 'inF2' (in 4X4 matrix of float) -0:414 sqrt (global 4X4 matrix of float) -0:414 'inF0' (in 4X4 matrix of float) -0:414 step (global 4X4 matrix of float) -0:414 'inF0' (in 4X4 matrix of float) -0:414 'inF1' (in 4X4 matrix of float) -0:414 tangent (global 4X4 matrix of float) -0:414 'inF0' (in 4X4 matrix of float) -0:414 hyp. tangent (global 4X4 matrix of float) -0:414 'inF0' (in 4X4 matrix of float) -0:414 transpose (global 4X4 matrix of float) -0:414 'inF0' (in 4X4 matrix of float) -0:414 trunc (global 4X4 matrix of float) -0:414 'inF0' (in 4X4 matrix of float) -0:417 Branch: Return with expression +0:420 Sequence +0:420 move second child to first child (temp bool) +0:420 'r000' (temp bool) +0:420 all (global bool) +0:420 'inF0' (in 4X4 matrix of float) +0:420 Sequence +0:420 move second child to first child (temp 4X4 matrix of float) +0:420 'r001' (temp 4X4 matrix of float) +0:420 Absolute value (global 4X4 matrix of float) +0:420 'inF0' (in 4X4 matrix of float) +0:420 arc cosine (global 4X4 matrix of float) +0:420 'inF0' (in 4X4 matrix of float) +0:420 Sequence +0:420 move second child to first child (temp bool) +0:420 'r003' (temp bool) +0:420 any (global bool) +0:420 'inF0' (in 4X4 matrix of float) +0:420 Sequence +0:420 move second child to first child (temp 4X4 matrix of float) +0:420 'r004' (temp 4X4 matrix of float) +0:420 arc sine (global 4X4 matrix of float) +0:420 'inF0' (in 4X4 matrix of float) +0:420 Sequence +0:420 move second child to first child (temp 4X4 matrix of float) +0:420 'r005' (temp 4X4 matrix of float) +0:420 arc tangent (global 4X4 matrix of float) +0:420 'inF0' (in 4X4 matrix of float) +0:420 Sequence +0:420 move second child to first child (temp 4X4 matrix of float) +0:420 'r006' (temp 4X4 matrix of float) +0:420 arc tangent (global 4X4 matrix of float) +0:420 'inF0' (in 4X4 matrix of float) +0:420 'inF1' (in 4X4 matrix of float) +0:420 Sequence +0:420 move second child to first child (temp 4X4 matrix of float) +0:420 'r007' (temp 4X4 matrix of float) +0:420 Ceiling (global 4X4 matrix of float) +0:420 'inF0' (in 4X4 matrix of float) +0:420 Test condition and select (temp void) +0:420 Condition +0:420 any (temp bool) +0:420 Compare Less Than (temp 4X4 matrix of bool) +0:420 'inF0' (in 4X4 matrix of float) +0:420 Constant: +0:420 0.000000 +0:420 0.000000 +0:420 0.000000 +0:420 0.000000 +0:420 0.000000 +0:420 0.000000 +0:420 0.000000 +0:420 0.000000 +0:420 0.000000 +0:420 0.000000 +0:420 0.000000 +0:420 0.000000 +0:420 0.000000 +0:420 0.000000 +0:420 0.000000 +0:420 0.000000 +0:420 true case +0:420 Branch: Kill +0:420 Sequence +0:420 move second child to first child (temp 4X4 matrix of float) +0:420 'r008' (temp 4X4 matrix of float) +0:420 clamp (global 4X4 matrix of float) +0:420 'inF0' (in 4X4 matrix of float) +0:420 'inF1' (in 4X4 matrix of float) +0:420 'inF2' (in 4X4 matrix of float) +0:420 Sequence +0:420 move second child to first child (temp 4X4 matrix of float) +0:420 'r009' (temp 4X4 matrix of float) +0:420 cosine (global 4X4 matrix of float) +0:420 'inF0' (in 4X4 matrix of float) +0:420 Sequence +0:420 move second child to first child (temp 4X4 matrix of float) +0:420 'r010' (temp 4X4 matrix of float) +0:420 hyp. cosine (global 4X4 matrix of float) +0:420 'inF0' (in 4X4 matrix of float) +0:420 Sequence +0:420 move second child to first child (temp 4X4 matrix of float) +0:420 'r011' (temp 4X4 matrix of float) +0:420 dPdx (global 4X4 matrix of float) +0:420 'inF0' (in 4X4 matrix of float) +0:420 Sequence +0:420 move second child to first child (temp 4X4 matrix of float) +0:420 'r012' (temp 4X4 matrix of float) +0:420 dPdxCoarse (global 4X4 matrix of float) +0:420 'inF0' (in 4X4 matrix of float) +0:420 Sequence +0:420 move second child to first child (temp 4X4 matrix of float) +0:420 'r013' (temp 4X4 matrix of float) +0:420 dPdxFine (global 4X4 matrix of float) +0:420 'inF0' (in 4X4 matrix of float) +0:420 Sequence +0:420 move second child to first child (temp 4X4 matrix of float) +0:420 'r014' (temp 4X4 matrix of float) +0:420 dPdy (global 4X4 matrix of float) +0:420 'inF0' (in 4X4 matrix of float) +0:420 Sequence +0:420 move second child to first child (temp 4X4 matrix of float) +0:420 'r015' (temp 4X4 matrix of float) +0:420 dPdyCoarse (global 4X4 matrix of float) +0:420 'inF0' (in 4X4 matrix of float) +0:420 Sequence +0:420 move second child to first child (temp 4X4 matrix of float) +0:420 'r016' (temp 4X4 matrix of float) +0:420 dPdyFine (global 4X4 matrix of float) +0:420 'inF0' (in 4X4 matrix of float) +0:420 Sequence +0:420 move second child to first child (temp 4X4 matrix of float) +0:420 'r017' (temp 4X4 matrix of float) +0:420 degrees (global 4X4 matrix of float) +0:420 'inF0' (in 4X4 matrix of float) +0:420 Sequence +0:420 move second child to first child (temp float) +0:420 'r018' (temp float) +0:420 determinant (global float) +0:420 'inF0' (in 4X4 matrix of float) +0:420 Sequence +0:420 move second child to first child (temp 4X4 matrix of float) +0:420 'r019' (temp 4X4 matrix of float) +0:420 exp (global 4X4 matrix of float) +0:420 'inF0' (in 4X4 matrix of float) +0:420 Sequence +0:420 move second child to first child (temp 4X4 matrix of float) +0:420 'R020' (temp 4X4 matrix of float) +0:420 exp2 (global 4X4 matrix of float) +0:420 'inF0' (in 4X4 matrix of float) +0:420 Sequence +0:420 move second child to first child (temp 4X4 matrix of float) +0:420 'r021' (temp 4X4 matrix of float) +0:420 Floor (global 4X4 matrix of float) +0:420 'inF0' (in 4X4 matrix of float) +0:420 Sequence +0:420 move second child to first child (temp 4X4 matrix of float) +0:420 'r022' (temp 4X4 matrix of float) +0:420 mod (global 4X4 matrix of float) +0:420 'inF0' (in 4X4 matrix of float) +0:420 'inF1' (in 4X4 matrix of float) +0:420 Sequence +0:420 move second child to first child (temp 4X4 matrix of float) +0:420 'r023' (temp 4X4 matrix of float) +0:420 Fraction (global 4X4 matrix of float) +0:420 'inF0' (in 4X4 matrix of float) +0:420 Sequence +0:420 move second child to first child (temp 4X4 matrix of float) +0:420 'r024' (temp 4X4 matrix of float) +0:420 frexp (global 4X4 matrix of float) +0:420 'inF0' (in 4X4 matrix of float) +0:420 'inF1' (in 4X4 matrix of float) +0:420 Sequence +0:420 move second child to first child (temp 4X4 matrix of float) +0:420 'r025' (temp 4X4 matrix of float) +0:420 fwidth (global 4X4 matrix of float) +0:420 'inF0' (in 4X4 matrix of float) +0:420 Sequence +0:420 move second child to first child (temp 4X4 matrix of float) +0:420 'r026' (temp 4X4 matrix of float) +0:420 ldexp (global 4X4 matrix of float) +0:420 'inF0' (in 4X4 matrix of float) +0:420 'inF1' (in 4X4 matrix of float) +0:420 Sequence +0:420 move second child to first child (temp 4X4 matrix of float) +0:420 'r026a' (temp 4X4 matrix of float) +0:420 mix (global 4X4 matrix of float) +0:420 'inF0' (in 4X4 matrix of float) +0:420 'inF1' (in 4X4 matrix of float) +0:420 'inF2' (in 4X4 matrix of float) +0:420 Sequence +0:420 move second child to first child (temp 4X4 matrix of float) +0:420 'r027' (temp 4X4 matrix of float) +0:420 log (global 4X4 matrix of float) +0:420 'inF0' (in 4X4 matrix of float) +0:420 Sequence +0:420 move second child to first child (temp 4X4 matrix of float) +0:420 'r028' (temp 4X4 matrix of float) +0:420 matrix-scale (temp 4X4 matrix of float) +0:420 log2 (temp 4X4 matrix of float) +0:420 'inF0' (in 4X4 matrix of float) +0:420 Constant: +0:420 0.301030 +0:420 Sequence +0:420 move second child to first child (temp 4X4 matrix of float) +0:420 'r029' (temp 4X4 matrix of float) +0:420 log2 (global 4X4 matrix of float) +0:420 'inF0' (in 4X4 matrix of float) +0:420 Sequence +0:420 move second child to first child (temp 4X4 matrix of float) +0:420 'r030' (temp 4X4 matrix of float) +0:420 max (global 4X4 matrix of float) +0:420 'inF0' (in 4X4 matrix of float) +0:420 'inF1' (in 4X4 matrix of float) +0:420 Sequence +0:420 move second child to first child (temp 4X4 matrix of float) +0:420 'r031' (temp 4X4 matrix of float) +0:420 min (global 4X4 matrix of float) +0:420 'inF0' (in 4X4 matrix of float) +0:420 'inF1' (in 4X4 matrix of float) +0:420 Sequence +0:420 move second child to first child (temp 4X4 matrix of float) +0:420 'r032' (temp 4X4 matrix of float) +0:420 pow (global 4X4 matrix of float) +0:420 'inF0' (in 4X4 matrix of float) +0:420 'inF1' (in 4X4 matrix of float) +0:420 Sequence +0:420 move second child to first child (temp 4X4 matrix of float) +0:420 'r033' (temp 4X4 matrix of float) +0:420 radians (global 4X4 matrix of float) +0:420 'inF0' (in 4X4 matrix of float) +0:420 Sequence +0:420 move second child to first child (temp 4X4 matrix of float) +0:420 'r034' (temp 4X4 matrix of float) +0:420 roundEven (global 4X4 matrix of float) +0:420 'inF0' (in 4X4 matrix of float) +0:420 Sequence +0:420 move second child to first child (temp 4X4 matrix of float) +0:420 'r035' (temp 4X4 matrix of float) +0:420 inverse sqrt (global 4X4 matrix of float) +0:420 'inF0' (in 4X4 matrix of float) +0:420 Sequence +0:420 move second child to first child (temp 4X4 matrix of float) +0:420 'r036' (temp 4X4 matrix of float) +0:420 clamp (temp 4X4 matrix of float) +0:420 'inF0' (in 4X4 matrix of float) +0:420 Constant: +0:420 0.000000 +0:420 Constant: +0:420 1.000000 +0:420 Sequence +0:420 move second child to first child (temp 4X4 matrix of float) +0:420 'r037' (temp 4X4 matrix of float) +0:420 Sign (global 4X4 matrix of float) +0:420 'inF0' (in 4X4 matrix of float) +0:420 Sequence +0:420 move second child to first child (temp 4X4 matrix of float) +0:420 'r038' (temp 4X4 matrix of float) +0:420 sine (global 4X4 matrix of float) +0:420 'inF0' (in 4X4 matrix of float) +0:420 Sequence +0:420 move second child to first child (temp 4X4 matrix of float) +0:420 'inF1' (in 4X4 matrix of float) +0:420 sine (temp 4X4 matrix of float) +0:420 'inF0' (in 4X4 matrix of float) +0:420 move second child to first child (temp 4X4 matrix of float) +0:420 'inF2' (in 4X4 matrix of float) +0:420 cosine (temp 4X4 matrix of float) +0:420 'inF0' (in 4X4 matrix of float) +0:420 Sequence +0:420 move second child to first child (temp 4X4 matrix of float) +0:420 'r039' (temp 4X4 matrix of float) +0:420 hyp. sine (global 4X4 matrix of float) +0:420 'inF0' (in 4X4 matrix of float) +0:420 Sequence +0:420 move second child to first child (temp 4X4 matrix of float) +0:420 'r049' (temp 4X4 matrix of float) +0:420 smoothstep (global 4X4 matrix of float) +0:420 'inF0' (in 4X4 matrix of float) +0:420 'inF1' (in 4X4 matrix of float) +0:420 'inF2' (in 4X4 matrix of float) +0:420 Sequence +0:420 move second child to first child (temp 4X4 matrix of float) +0:420 'r041' (temp 4X4 matrix of float) +0:420 sqrt (global 4X4 matrix of float) +0:420 'inF0' (in 4X4 matrix of float) +0:420 Sequence +0:420 move second child to first child (temp 4X4 matrix of float) +0:420 'r042' (temp 4X4 matrix of float) +0:420 step (global 4X4 matrix of float) +0:420 'inF0' (in 4X4 matrix of float) +0:420 'inF1' (in 4X4 matrix of float) +0:420 Sequence +0:420 move second child to first child (temp 4X4 matrix of float) +0:420 'r043' (temp 4X4 matrix of float) +0:420 tangent (global 4X4 matrix of float) +0:420 'inF0' (in 4X4 matrix of float) +0:420 Sequence +0:420 move second child to first child (temp 4X4 matrix of float) +0:420 'r044' (temp 4X4 matrix of float) +0:420 hyp. tangent (global 4X4 matrix of float) +0:420 'inF0' (in 4X4 matrix of float) +0:420 transpose (global 4X4 matrix of float) +0:420 'inF0' (in 4X4 matrix of float) +0:420 Sequence +0:420 move second child to first child (temp 4X4 matrix of float) +0:420 'r046' (temp 4X4 matrix of float) +0:420 trunc (global 4X4 matrix of float) +0:420 'inF0' (in 4X4 matrix of float) +0:423 Branch: Return with expression 0:? Constant: 0:? 4.000000 0:? 4.000000 @@ -2719,713 +5218,3126 @@ gl_FragCoord origin is upper left 0:? 4.000000 0:? 4.000000 0:? 4.000000 -0:439 Function Definition: TestGenMul(f1;f1;vf2;vf2;mf22;mf22; (temp void) -0:435 Function Parameters: -0:435 'inF0' (in float) -0:435 'inF1' (in float) -0:435 'inFV0' (in 2-component vector of float) -0:435 'inFV1' (in 2-component vector of float) -0:435 'inFM0' (in 2X2 matrix of float) -0:435 'inFM1' (in 2X2 matrix of float) +0:445 Function Definition: TestGenMul2(f1;f1;vf2;vf2;mf22;mf22; (global void) +0:441 Function Parameters: +0:441 'inF0' (in float) +0:441 'inF1' (in float) +0:441 'inFV0' (in 2-component vector of float) +0:441 'inFV1' (in 2-component vector of float) +0:441 'inFM0' (in 2X2 matrix of float) +0:441 'inFM1' (in 2X2 matrix of float) 0:? Sequence -0:436 move second child to first child (temp float) -0:436 'r0' (temp float) -0:436 component-wise multiply (temp float) -0:436 'inF0' (in float) -0:436 'inF1' (in float) -0:436 move second child to first child (temp 2-component vector of float) -0:436 'r1' (temp 2-component vector of float) -0:436 vector-scale (temp 2-component vector of float) -0:436 'inFV0' (in 2-component vector of float) -0:436 'inF0' (in float) -0:436 move second child to first child (temp 2-component vector of float) -0:436 'r2' (temp 2-component vector of float) -0:436 vector-scale (temp 2-component vector of float) -0:436 'inF0' (in float) -0:436 'inFV0' (in 2-component vector of float) -0:436 move second child to first child (temp float) -0:436 'r3' (temp float) -0:436 dot-product (global float) -0:436 'inFV0' (in 2-component vector of float) -0:436 'inFV1' (in 2-component vector of float) -0:436 move second child to first child (temp 2-component vector of float) -0:436 'r4' (temp 2-component vector of float) -0:436 matrix-times-vector (temp 2-component vector of float) -0:436 'inFM0' (in 2X2 matrix of float) -0:436 'inFV0' (in 2-component vector of float) -0:436 move second child to first child (temp 2-component vector of float) -0:436 'r5' (temp 2-component vector of float) -0:436 vector-times-matrix (temp 2-component vector of float) -0:436 'inFV0' (in 2-component vector of float) -0:436 'inFM0' (in 2X2 matrix of float) -0:436 move second child to first child (temp 2X2 matrix of float) -0:436 'r6' (temp 2X2 matrix of float) -0:436 matrix-scale (temp 2X2 matrix of float) -0:436 'inFM0' (in 2X2 matrix of float) -0:436 'inF0' (in float) -0:436 move second child to first child (temp 2X2 matrix of float) -0:436 'r7' (temp 2X2 matrix of float) -0:436 matrix-scale (temp 2X2 matrix of float) -0:436 'inF0' (in float) -0:436 'inFM0' (in 2X2 matrix of float) -0:436 move second child to first child (temp 2X2 matrix of float) -0:436 'r8' (temp 2X2 matrix of float) -0:436 matrix-multiply (temp 2X2 matrix of float) -0:436 'inFM0' (in 2X2 matrix of float) -0:436 'inFM1' (in 2X2 matrix of float) -0:446 Function Definition: TestGenMul(f1;f1;vf3;vf3;mf33;mf33; (temp void) -0:442 Function Parameters: -0:442 'inF0' (in float) -0:442 'inF1' (in float) -0:442 'inFV0' (in 3-component vector of float) -0:442 'inFV1' (in 3-component vector of float) -0:442 'inFM0' (in 3X3 matrix of float) -0:442 'inFM1' (in 3X3 matrix of float) +0:442 Sequence +0:442 move second child to first child (temp float) +0:442 'r0' (temp float) +0:442 component-wise multiply (temp float) +0:442 'inF0' (in float) +0:442 'inF1' (in float) +0:442 Sequence +0:442 move second child to first child (temp 2-component vector of float) +0:442 'r1' (temp 2-component vector of float) +0:442 vector-scale (temp 2-component vector of float) +0:442 'inFV0' (in 2-component vector of float) +0:442 'inF0' (in float) +0:442 Sequence +0:442 move second child to first child (temp 2-component vector of float) +0:442 'r2' (temp 2-component vector of float) +0:442 vector-scale (temp 2-component vector of float) +0:442 'inF0' (in float) +0:442 'inFV0' (in 2-component vector of float) +0:442 Sequence +0:442 move second child to first child (temp float) +0:442 'r3' (temp float) +0:442 dot-product (global float) +0:442 'inFV0' (in 2-component vector of float) +0:442 'inFV1' (in 2-component vector of float) +0:442 Sequence +0:442 move second child to first child (temp 2-component vector of float) +0:442 'r4' (temp 2-component vector of float) +0:442 matrix-times-vector (temp 2-component vector of float) +0:442 'inFM0' (in 2X2 matrix of float) +0:442 'inFV0' (in 2-component vector of float) +0:442 Sequence +0:442 move second child to first child (temp 2-component vector of float) +0:442 'r5' (temp 2-component vector of float) +0:442 vector-times-matrix (temp 2-component vector of float) +0:442 'inFV0' (in 2-component vector of float) +0:442 'inFM0' (in 2X2 matrix of float) +0:442 Sequence +0:442 move second child to first child (temp 2X2 matrix of float) +0:442 'r6' (temp 2X2 matrix of float) +0:442 matrix-scale (temp 2X2 matrix of float) +0:442 'inFM0' (in 2X2 matrix of float) +0:442 'inF0' (in float) +0:442 Sequence +0:442 move second child to first child (temp 2X2 matrix of float) +0:442 'r7' (temp 2X2 matrix of float) +0:442 matrix-scale (temp 2X2 matrix of float) +0:442 'inF0' (in float) +0:442 'inFM0' (in 2X2 matrix of float) +0:442 Sequence +0:442 move second child to first child (temp 2X2 matrix of float) +0:442 'r8' (temp 2X2 matrix of float) +0:442 matrix-multiply (temp 2X2 matrix of float) +0:442 'inFM0' (in 2X2 matrix of float) +0:442 'inFM1' (in 2X2 matrix of float) +0:452 Function Definition: TestGenMul3(f1;f1;vf3;vf3;mf33;mf33; (global void) +0:448 Function Parameters: +0:448 'inF0' (in float) +0:448 'inF1' (in float) +0:448 'inFV0' (in 3-component vector of float) +0:448 'inFV1' (in 3-component vector of float) +0:448 'inFM0' (in 3X3 matrix of float) +0:448 'inFM1' (in 3X3 matrix of float) 0:? Sequence -0:443 move second child to first child (temp float) -0:443 'r0' (temp float) -0:443 component-wise multiply (temp float) -0:443 'inF0' (in float) -0:443 'inF1' (in float) -0:443 move second child to first child (temp 3-component vector of float) -0:443 'r1' (temp 3-component vector of float) -0:443 vector-scale (temp 3-component vector of float) -0:443 'inFV0' (in 3-component vector of float) -0:443 'inF0' (in float) -0:443 move second child to first child (temp 3-component vector of float) -0:443 'r2' (temp 3-component vector of float) -0:443 vector-scale (temp 3-component vector of float) -0:443 'inF0' (in float) -0:443 'inFV0' (in 3-component vector of float) -0:443 move second child to first child (temp float) -0:443 'r3' (temp float) -0:443 dot-product (global float) -0:443 'inFV0' (in 3-component vector of float) -0:443 'inFV1' (in 3-component vector of float) -0:443 move second child to first child (temp 3-component vector of float) -0:443 'r4' (temp 3-component vector of float) -0:443 matrix-times-vector (temp 3-component vector of float) -0:443 'inFM0' (in 3X3 matrix of float) -0:443 'inFV0' (in 3-component vector of float) -0:443 move second child to first child (temp 3-component vector of float) -0:443 'r5' (temp 3-component vector of float) -0:443 vector-times-matrix (temp 3-component vector of float) -0:443 'inFV0' (in 3-component vector of float) -0:443 'inFM0' (in 3X3 matrix of float) -0:443 move second child to first child (temp 3X3 matrix of float) -0:443 'r6' (temp 3X3 matrix of float) -0:443 matrix-scale (temp 3X3 matrix of float) -0:443 'inFM0' (in 3X3 matrix of float) -0:443 'inF0' (in float) -0:443 move second child to first child (temp 3X3 matrix of float) -0:443 'r7' (temp 3X3 matrix of float) -0:443 matrix-scale (temp 3X3 matrix of float) -0:443 'inF0' (in float) -0:443 'inFM0' (in 3X3 matrix of float) -0:443 move second child to first child (temp 3X3 matrix of float) -0:443 'r8' (temp 3X3 matrix of float) -0:443 matrix-multiply (temp 3X3 matrix of float) -0:443 'inFM0' (in 3X3 matrix of float) -0:443 'inFM1' (in 3X3 matrix of float) -0:452 Function Definition: TestGenMul(f1;f1;vf4;vf4;mf44;mf44; (temp void) -0:449 Function Parameters: -0:449 'inF0' (in float) -0:449 'inF1' (in float) -0:449 'inFV0' (in 4-component vector of float) -0:449 'inFV1' (in 4-component vector of float) -0:449 'inFM0' (in 4X4 matrix of float) -0:449 'inFM1' (in 4X4 matrix of float) +0:449 Sequence +0:449 move second child to first child (temp float) +0:449 'r0' (temp float) +0:449 component-wise multiply (temp float) +0:449 'inF0' (in float) +0:449 'inF1' (in float) +0:449 Sequence +0:449 move second child to first child (temp 3-component vector of float) +0:449 'r1' (temp 3-component vector of float) +0:449 vector-scale (temp 3-component vector of float) +0:449 'inFV0' (in 3-component vector of float) +0:449 'inF0' (in float) +0:449 Sequence +0:449 move second child to first child (temp 3-component vector of float) +0:449 'r2' (temp 3-component vector of float) +0:449 vector-scale (temp 3-component vector of float) +0:449 'inF0' (in float) +0:449 'inFV0' (in 3-component vector of float) +0:449 Sequence +0:449 move second child to first child (temp float) +0:449 'r3' (temp float) +0:449 dot-product (global float) +0:449 'inFV0' (in 3-component vector of float) +0:449 'inFV1' (in 3-component vector of float) +0:449 Sequence +0:449 move second child to first child (temp 3-component vector of float) +0:449 'r4' (temp 3-component vector of float) +0:449 matrix-times-vector (temp 3-component vector of float) +0:449 'inFM0' (in 3X3 matrix of float) +0:449 'inFV0' (in 3-component vector of float) +0:449 Sequence +0:449 move second child to first child (temp 3-component vector of float) +0:449 'r5' (temp 3-component vector of float) +0:449 vector-times-matrix (temp 3-component vector of float) +0:449 'inFV0' (in 3-component vector of float) +0:449 'inFM0' (in 3X3 matrix of float) +0:449 Sequence +0:449 move second child to first child (temp 3X3 matrix of float) +0:449 'r6' (temp 3X3 matrix of float) +0:449 matrix-scale (temp 3X3 matrix of float) +0:449 'inFM0' (in 3X3 matrix of float) +0:449 'inF0' (in float) +0:449 Sequence +0:449 move second child to first child (temp 3X3 matrix of float) +0:449 'r7' (temp 3X3 matrix of float) +0:449 matrix-scale (temp 3X3 matrix of float) +0:449 'inF0' (in float) +0:449 'inFM0' (in 3X3 matrix of float) +0:449 Sequence +0:449 move second child to first child (temp 3X3 matrix of float) +0:449 'r8' (temp 3X3 matrix of float) +0:449 matrix-multiply (temp 3X3 matrix of float) +0:449 'inFM0' (in 3X3 matrix of float) +0:449 'inFM1' (in 3X3 matrix of float) +0:460 Function Definition: TestGenMul4(f1;f1;vf4;vf4;mf44;mf44; (global void) +0:455 Function Parameters: +0:455 'inF0' (in float) +0:455 'inF1' (in float) +0:455 'inFV0' (in 4-component vector of float) +0:455 'inFV1' (in 4-component vector of float) +0:455 'inFM0' (in 4X4 matrix of float) +0:455 'inFM1' (in 4X4 matrix of float) 0:? Sequence -0:450 move second child to first child (temp float) -0:450 'r0' (temp float) -0:450 component-wise multiply (temp float) -0:450 'inF0' (in float) -0:450 'inF1' (in float) -0:450 move second child to first child (temp 4-component vector of float) -0:450 'r1' (temp 4-component vector of float) -0:450 vector-scale (temp 4-component vector of float) -0:450 'inFV0' (in 4-component vector of float) -0:450 'inF0' (in float) -0:450 move second child to first child (temp 4-component vector of float) -0:450 'r2' (temp 4-component vector of float) -0:450 vector-scale (temp 4-component vector of float) -0:450 'inF0' (in float) -0:450 'inFV0' (in 4-component vector of float) -0:450 move second child to first child (temp float) -0:450 'r3' (temp float) -0:450 dot-product (global float) -0:450 'inFV0' (in 4-component vector of float) -0:450 'inFV1' (in 4-component vector of float) -0:450 move second child to first child (temp 4-component vector of float) -0:450 'r4' (temp 4-component vector of float) -0:450 matrix-times-vector (temp 4-component vector of float) -0:450 'inFM0' (in 4X4 matrix of float) -0:450 'inFV0' (in 4-component vector of float) -0:450 move second child to first child (temp 4-component vector of float) -0:450 'r5' (temp 4-component vector of float) -0:450 vector-times-matrix (temp 4-component vector of float) -0:450 'inFV0' (in 4-component vector of float) -0:450 'inFM0' (in 4X4 matrix of float) -0:450 move second child to first child (temp 4X4 matrix of float) -0:450 'r6' (temp 4X4 matrix of float) -0:450 matrix-scale (temp 4X4 matrix of float) -0:450 'inFM0' (in 4X4 matrix of float) -0:450 'inF0' (in float) -0:450 move second child to first child (temp 4X4 matrix of float) -0:450 'r7' (temp 4X4 matrix of float) -0:450 matrix-scale (temp 4X4 matrix of float) -0:450 'inF0' (in float) -0:450 'inFM0' (in 4X4 matrix of float) -0:450 move second child to first child (temp 4X4 matrix of float) -0:450 'r8' (temp 4X4 matrix of float) -0:450 matrix-multiply (temp 4X4 matrix of float) -0:450 'inFM0' (in 4X4 matrix of float) -0:450 'inFM1' (in 4X4 matrix of float) +0:456 Sequence +0:456 move second child to first child (temp float) +0:456 'r0' (temp float) +0:456 component-wise multiply (temp float) +0:456 'inF0' (in float) +0:456 'inF1' (in float) +0:456 Sequence +0:456 move second child to first child (temp 4-component vector of float) +0:456 'r1' (temp 4-component vector of float) +0:456 vector-scale (temp 4-component vector of float) +0:456 'inFV0' (in 4-component vector of float) +0:456 'inF0' (in float) +0:456 Sequence +0:456 move second child to first child (temp 4-component vector of float) +0:456 'r2' (temp 4-component vector of float) +0:456 vector-scale (temp 4-component vector of float) +0:456 'inF0' (in float) +0:456 'inFV0' (in 4-component vector of float) +0:456 Sequence +0:456 move second child to first child (temp float) +0:456 'r3' (temp float) +0:456 dot-product (global float) +0:456 'inFV0' (in 4-component vector of float) +0:456 'inFV1' (in 4-component vector of float) +0:456 Sequence +0:456 move second child to first child (temp 4-component vector of float) +0:456 'r4' (temp 4-component vector of float) +0:456 matrix-times-vector (temp 4-component vector of float) +0:456 'inFM0' (in 4X4 matrix of float) +0:456 'inFV0' (in 4-component vector of float) +0:456 Sequence +0:456 move second child to first child (temp 4-component vector of float) +0:456 'r5' (temp 4-component vector of float) +0:456 vector-times-matrix (temp 4-component vector of float) +0:456 'inFV0' (in 4-component vector of float) +0:456 'inFM0' (in 4X4 matrix of float) +0:456 Sequence +0:456 move second child to first child (temp 4X4 matrix of float) +0:456 'r6' (temp 4X4 matrix of float) +0:456 matrix-scale (temp 4X4 matrix of float) +0:456 'inFM0' (in 4X4 matrix of float) +0:456 'inF0' (in float) +0:456 Sequence +0:456 move second child to first child (temp 4X4 matrix of float) +0:456 'r7' (temp 4X4 matrix of float) +0:456 matrix-scale (temp 4X4 matrix of float) +0:456 'inF0' (in float) +0:456 'inFM0' (in 4X4 matrix of float) +0:456 Sequence +0:456 move second child to first child (temp 4X4 matrix of float) +0:456 'r8' (temp 4X4 matrix of float) +0:456 matrix-multiply (temp 4X4 matrix of float) +0:456 'inFM0' (in 4X4 matrix of float) +0:456 'inFM1' (in 4X4 matrix of float) +0:484 Function Definition: TestGenMulNxM(f1;f1;vf2;vf3;mf32;mf23;mf33;mf43;mf42; (global void) +0:465 Function Parameters: +0:465 'inF0' (in float) +0:465 'inF1' (in float) +0:465 'inFV2' (in 2-component vector of float) +0:465 'inFV3' (in 3-component vector of float) +0:465 'inFM2x3' (in 3X2 matrix of float) +0:465 'inFM3x2' (in 2X3 matrix of float) +0:465 'inFM3x3' (in 3X3 matrix of float) +0:465 'inFM3x4' (in 4X3 matrix of float) +0:465 'inFM2x4' (in 4X2 matrix of float) +0:? Sequence +0:466 Sequence +0:466 move second child to first child (temp float) +0:466 'r00' (temp float) +0:466 component-wise multiply (temp float) +0:466 'inF0' (in float) +0:466 'inF1' (in float) +0:467 Sequence +0:467 move second child to first child (temp 2-component vector of float) +0:467 'r01' (temp 2-component vector of float) +0:467 vector-scale (temp 2-component vector of float) +0:467 'inFV2' (in 2-component vector of float) +0:467 'inF0' (in float) +0:468 Sequence +0:468 move second child to first child (temp 3-component vector of float) +0:468 'r02' (temp 3-component vector of float) +0:468 vector-scale (temp 3-component vector of float) +0:468 'inFV3' (in 3-component vector of float) +0:468 'inF0' (in float) +0:469 Sequence +0:469 move second child to first child (temp 2-component vector of float) +0:469 'r03' (temp 2-component vector of float) +0:469 vector-scale (temp 2-component vector of float) +0:469 'inF0' (in float) +0:469 'inFV2' (in 2-component vector of float) +0:470 Sequence +0:470 move second child to first child (temp 3-component vector of float) +0:470 'r04' (temp 3-component vector of float) +0:470 vector-scale (temp 3-component vector of float) +0:470 'inF0' (in float) +0:470 'inFV3' (in 3-component vector of float) +0:471 Sequence +0:471 move second child to first child (temp float) +0:471 'r05' (temp float) +0:471 dot-product (global float) +0:471 'inFV2' (in 2-component vector of float) +0:471 'inFV2' (in 2-component vector of float) +0:472 Sequence +0:472 move second child to first child (temp float) +0:472 'r06' (temp float) +0:472 dot-product (global float) +0:472 'inFV3' (in 3-component vector of float) +0:472 'inFV3' (in 3-component vector of float) +0:473 Sequence +0:473 move second child to first child (temp 3-component vector of float) +0:473 'r07' (temp 3-component vector of float) +0:473 vector-times-matrix (temp 3-component vector of float) +0:473 'inFV2' (in 2-component vector of float) +0:473 'inFM2x3' (in 3X2 matrix of float) +0:474 Sequence +0:474 move second child to first child (temp 2-component vector of float) +0:474 'r08' (temp 2-component vector of float) +0:474 vector-times-matrix (temp 2-component vector of float) +0:474 'inFV3' (in 3-component vector of float) +0:474 'inFM3x2' (in 2X3 matrix of float) +0:475 Sequence +0:475 move second child to first child (temp 2-component vector of float) +0:475 'r09' (temp 2-component vector of float) +0:475 matrix-times-vector (temp 2-component vector of float) +0:475 'inFM2x3' (in 3X2 matrix of float) +0:475 'inFV3' (in 3-component vector of float) +0:476 Sequence +0:476 move second child to first child (temp 3-component vector of float) +0:476 'r10' (temp 3-component vector of float) +0:476 matrix-times-vector (temp 3-component vector of float) +0:476 'inFM3x2' (in 2X3 matrix of float) +0:476 'inFV2' (in 2-component vector of float) +0:477 Sequence +0:477 move second child to first child (temp 3X2 matrix of float) +0:477 'r11' (temp 3X2 matrix of float) +0:477 matrix-scale (temp 3X2 matrix of float) +0:477 'inFM2x3' (in 3X2 matrix of float) +0:477 'inF0' (in float) +0:478 Sequence +0:478 move second child to first child (temp 2X3 matrix of float) +0:478 'r12' (temp 2X3 matrix of float) +0:478 matrix-scale (temp 2X3 matrix of float) +0:478 'inFM3x2' (in 2X3 matrix of float) +0:478 'inF0' (in float) +0:479 Sequence +0:479 move second child to first child (temp 2X2 matrix of float) +0:479 'r13' (temp 2X2 matrix of float) +0:479 matrix-multiply (temp 2X2 matrix of float) +0:479 'inFM2x3' (in 3X2 matrix of float) +0:479 'inFM3x2' (in 2X3 matrix of float) +0:480 Sequence +0:480 move second child to first child (temp 3X2 matrix of float) +0:480 'r14' (temp 3X2 matrix of float) +0:480 matrix-multiply (temp 3X2 matrix of float) +0:480 'inFM2x3' (in 3X2 matrix of float) +0:480 'inFM3x3' (in 3X3 matrix of float) +0:481 Sequence +0:481 move second child to first child (temp 4X2 matrix of float) +0:481 'r15' (temp 4X2 matrix of float) +0:481 matrix-multiply (temp 4X2 matrix of float) +0:481 'inFM2x3' (in 3X2 matrix of float) +0:481 'inFM3x4' (in 4X3 matrix of float) +0:482 Sequence +0:482 move second child to first child (temp 4X3 matrix of float) +0:482 'r16' (temp 4X3 matrix of float) +0:482 matrix-multiply (temp 4X3 matrix of float) +0:482 'inFM3x2' (in 2X3 matrix of float) +0:482 'inFM2x4' (in 4X2 matrix of float) 0:? Linker Objects -0:? 'gs_ua' (temp uint) -0:? 'gs_ub' (temp uint) -0:? 'gs_uc' (temp uint) -0:? 'gs_ua2' (temp 2-component vector of uint) -0:? 'gs_ub2' (temp 2-component vector of uint) -0:? 'gs_uc2' (temp 2-component vector of uint) -0:? 'gs_ua3' (temp 3-component vector of uint) -0:? 'gs_ub3' (temp 3-component vector of uint) -0:? 'gs_uc3' (temp 3-component vector of uint) -0:? 'gs_ua4' (temp 4-component vector of uint) -0:? 'gs_ub4' (temp 4-component vector of uint) -0:? 'gs_uc4' (temp 4-component vector of uint) +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) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 1265 +// Id's are bound by 1806 Capability Shader Capability DerivativeControl 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "PixelShaderFunction" 48 67 73 80 195 213 219 226 366 384 390 397 539 557 563 570 719 733 748 857 871 886 998 1012 1027 + EntryPoint Fragment 4 "PixelShaderFunction" 804 831 839 848 ExecutionMode 4 OriginUpperLeft Source HLSL 450 Name 4 "PixelShaderFunction" - Name 19 "TestGenMul(f1;f1;vf2;vf2;mf22;mf22;" - Name 13 "inF0" - Name 14 "inF1" - Name 15 "inFV0" - Name 16 "inFV1" - Name 17 "inFM0" - Name 18 "inFM1" - Name 32 "TestGenMul(f1;f1;vf3;vf3;mf33;mf33;" - Name 26 "inF0" - Name 27 "inF1" - Name 28 "inFV0" - Name 29 "inFV1" - Name 30 "inFM0" - Name 31 "inFM1" - Name 45 "TestGenMul(f1;f1;vf4;vf4;mf44;mf44;" - Name 39 "inF0" - Name 40 "inF1" - Name 41 "inFV0" - Name 42 "inFV1" - Name 43 "inFM0" - Name 44 "inFM1" - Name 48 "inF0" - Name 67 "inU0" - Name 73 "inF1" - Name 80 "inF2" - Name 124 "ResType" - Name 195 "inF0" - Name 213 "inU0" - Name 219 "inF1" - Name 226 "inF2" - Name 282 "ResType" - Name 366 "inF0" - Name 384 "inU0" - Name 390 "inF1" - Name 397 "inF2" - Name 456 "ResType" - Name 539 "inF0" - Name 557 "inU0" - Name 563 "inF1" - Name 570 "inF2" - Name 635 "ResType" - Name 719 "inF0" - Name 733 "inF1" - Name 748 "inF2" - Name 791 "ResType" - Name 857 "inF0" - Name 871 "inF1" - Name 886 "inF2" - Name 932 "ResType" - Name 998 "inF0" - Name 1012 "inF1" - Name 1027 "inF2" - Name 1076 "ResType" - Name 1141 "r0" - Name 1145 "r1" - Name 1149 "r2" - Name 1153 "r3" - Name 1157 "r4" - Name 1161 "r5" - Name 1165 "r6" - Name 1169 "r7" - Name 1173 "r8" - Name 1177 "r0" - Name 1181 "r1" - Name 1185 "r2" - Name 1189 "r3" - Name 1193 "r4" - Name 1197 "r5" - Name 1201 "r6" - Name 1205 "r7" - Name 1209 "r8" - Name 1213 "r0" - Name 1217 "r1" - Name 1221 "r2" - Name 1225 "r3" - Name 1229 "r4" - Name 1233 "r5" - Name 1237 "r6" - Name 1241 "r7" - Name 1245 "r8" - Name 1250 "gs_ua" - Name 1251 "gs_ub" - Name 1252 "gs_uc" - Name 1254 "gs_ua2" - Name 1255 "gs_ub2" - Name 1256 "gs_uc2" - Name 1258 "gs_ua3" - Name 1259 "gs_ub3" - Name 1260 "gs_uc3" - Name 1262 "gs_ua4" - Name 1263 "gs_ub4" - Name 1264 "gs_uc4" + Name 16 "PixelShaderFunctionS(f1;f1;f1;u1;u1;" + Name 11 "inF0" + Name 12 "inF1" + Name 13 "inF2" + Name 14 "inU0" + Name 15 "inU1" + Name 22 "PixelShaderFunction1(vf1;vf1;vf1;" + Name 19 "inF0" + Name 20 "inF1" + Name 21 "inF2" + Name 34 "PixelShaderFunction2(vf2;vf2;vf2;vu2;vu2;" + Name 29 "inF0" + Name 30 "inF1" + Name 31 "inF2" + Name 32 "inU0" + Name 33 "inU1" + Name 46 "PixelShaderFunction3(vf3;vf3;vf3;vu3;vu3;" + Name 41 "inF0" + Name 42 "inF1" + Name 43 "inF2" + Name 44 "inU0" + Name 45 "inU1" + Name 54 "PixelShaderFunction2x2(mf22;mf22;mf22;" + Name 51 "inF0" + Name 52 "inF1" + Name 53 "inF2" + Name 62 "PixelShaderFunction3x3(mf33;mf33;mf33;" + Name 59 "inF0" + Name 60 "inF1" + Name 61 "inF2" + Name 71 "PixelShaderFunction4x4(mf44;mf44;mf44;" + Name 68 "inF0" + Name 69 "inF1" + Name 70 "inF2" + Name 80 "TestGenMul2(f1;f1;vf2;vf2;mf22;mf22;" + Name 74 "inF0" + Name 75 "inF1" + Name 76 "inFV0" + Name 77 "inFV1" + Name 78 "inFM0" + Name 79 "inFM1" + Name 89 "TestGenMul3(f1;f1;vf3;vf3;mf33;mf33;" + Name 83 "inF0" + Name 84 "inF1" + Name 85 "inFV0" + Name 86 "inFV1" + Name 87 "inFM0" + Name 88 "inFM1" + Name 99 "TestGenMul4(f1;f1;vf4;vf4;mf44;mf44;" + Name 93 "inF0" + Name 94 "inF1" + Name 95 "inFV0" + Name 96 "inFV1" + Name 97 "inFM0" + Name 98 "inFM1" + Name 119 "TestGenMulNxM(f1;f1;vf2;vf3;mf32;mf23;mf33;mf43;mf42;" + Name 110 "inF0" + Name 111 "inF1" + Name 112 "inFV2" + Name 113 "inFV3" + Name 114 "inFM2x3" + Name 115 "inFM3x2" + Name 116 "inFM3x3" + Name 117 "inFM3x4" + Name 118 "inFM2x4" + Name 123 "r000" + Name 126 "r001" + Name 129 "r002" + Name 132 "r003" + Name 135 "r004" + Name 140 "r005" + Name 143 "r006" + Name 146 "r007" + Name 149 "r009" + Name 152 "r010" + Name 156 "r011" + Name 159 "r012" + Name 170 "r014" + Name 173 "r015" + Name 176 "r016" + Name 179 "r017" + Name 182 "r018" + Name 185 "r019" + Name 188 "r020" + Name 191 "r021" + Name 194 "r022" + Name 197 "r023" + Name 200 "r027" + Name 203 "r028" + Name 206 "r029" + Name 210 "r030" + Name 213 "r031" + Name 216 "r033" + Name 220 "r034" + Name 223 "r035" + Name 225 "ResType" + Name 229 "r036" + Name 232 "r037" + Name 235 "r038" + Name 238 "r039" + Name 242 "r039a" + Name 247 "r040" + Name 250 "r041" + Name 255 "r042" + Name 258 "r043" + Name 262 "r044" + Name 266 "r045" + Name 270 "r046" + Name 273 "r047" + Name 277 "r048" + Name 280 "r049" + Name 283 "r050" + Name 286 "r051" + Name 289 "r052" + Name 292 "r053" + Name 299 "r055" + Name 302 "r056" + Name 307 "r057" + Name 310 "r058" + Name 314 "r059" + Name 317 "r060" + Name 320 "r061" + Name 327 "r000" + Name 330 "r001" + Name 333 "r002" + Name 336 "r003" + Name 339 "r004" + Name 344 "r005" + Name 347 "r006" + Name 350 "r007" + Name 353 "r009" + Name 356 "r010" + Name 360 "r011" + Name 363 "r012" + Name 376 "r013" + Name 379 "r015" + Name 382 "r016" + Name 386 "r017" + Name 389 "r018" + Name 392 "r019" + Name 395 "r020" + Name 398 "r021" + Name 401 "r022" + Name 404 "r023" + Name 407 "r026" + Name 411 "r027" + Name 415 "r028" + Name 418 "r029" + Name 421 "r030" + Name 426 "r031" + Name 430 "r032" + Name 432 "r033" + Name 435 "r035" + Name 439 "r036" + Name 442 "r037" + Name 444 "ResType" + Name 448 "r038" + Name 452 "r039" + Name 455 "r040" + Name 458 "r041" + Name 462 "r039a" + Name 467 "r042" + Name 470 "r043" + Name 473 "r044" + Name 477 "r045" + Name 480 "r046" + Name 484 "r047" + Name 488 "r048" + Name 491 "r049" + Name 495 "r050" + Name 498 "r051" + Name 502 "r052" + Name 506 "r053" + Name 511 "r054" + Name 515 "r055" + Name 518 "r056" + Name 521 "r057" + Name 526 "r058" + Name 529 "r059" + Name 536 "r060" + Name 539 "r061" + Name 544 "r062" + Name 547 "r063" + Name 551 "r064" + Name 554 "r065" + Name 557 "r066" + Name 563 "r000" + Name 566 "r001" + Name 569 "r002" + Name 572 "r003" + Name 575 "r004" + Name 580 "r005" + Name 583 "r006" + Name 586 "r007" + Name 589 "r009" + Name 592 "r010" + Name 596 "r011" + Name 599 "r012" + Name 612 "r013" + Name 615 "r014" + Name 618 "r015" + Name 622 "r016" + Name 626 "r017" + Name 629 "r018" + Name 632 "r019" + Name 635 "r020" + Name 638 "r021" + Name 641 "r022" + Name 644 "r023" + Name 647 "r024" + Name 651 "r025" + Name 655 "r029" + Name 658 "r030" + Name 661 "r031" + Name 666 "r032" + Name 670 "r033" + Name 672 "r034" + Name 675 "r036" + Name 679 "r037" + Name 682 "r038" + Name 684 "ResType" + Name 688 "r039" + Name 692 "r040" + Name 695 "r041" + Name 698 "r042" + Name 702 "r039a" + Name 707 "r043" + Name 710 "r044" + Name 713 "r045" + Name 717 "r046" + Name 720 "r047" + Name 724 "r048" + Name 728 "r049" + Name 731 "r050" + Name 735 "r051" + Name 738 "r052" + Name 742 "r053" + Name 746 "r054" + Name 750 "r055" + Name 753 "r056" + Name 756 "r057" + Name 759 "r058" + Name 764 "r059" + Name 767 "r060" + Name 774 "r061" + Name 777 "r062" + Name 782 "r063" + Name 785 "r064" + Name 789 "r065" + Name 792 "r066" + Name 795 "r067" + Name 802 "r000" + Name 804 "inF0" + Name 807 "r001" + Name 810 "r002" + Name 813 "r003" + Name 816 "r004" + Name 821 "r005" + Name 826 "r006" + Name 829 "r007" + Name 831 "inU0" + Name 834 "r009" + Name 837 "r010" + Name 839 "inF1" + Name 842 "r011" + Name 845 "r012" + Name 848 "inF2" + Name 859 "r013" + Name 862 "r014" + Name 865 "r015" + Name 868 "r016" + Name 871 "r017" + Name 874 "r018" + Name 877 "r019" + Name 880 "r020" + Name 883 "r021" + Name 886 "r022" + Name 889 "r023" + Name 893 "r024" + Name 897 "r025" + Name 909 "r029" + Name 912 "r030" + Name 915 "r031" + Name 920 "r032" + Name 925 "r033" + Name 927 "r034" + Name 930 "r036" + Name 934 "r037" + Name 937 "r038" + Name 939 "ResType" + Name 943 "r039" + Name 947 "r040" + Name 950 "r041" + Name 953 "r042" + Name 957 "r039a" + Name 962 "r043" + Name 965 "r044" + Name 968 "r045" + Name 972 "r046" + Name 975 "r047" + Name 979 "r048" + Name 983 "r049" + Name 986 "r050" + Name 990 "r051" + Name 993 "r052" + Name 997 "r053" + Name 1001 "r054" + Name 1005 "r055" + Name 1008 "r056" + Name 1011 "r057" + Name 1014 "r058" + Name 1019 "r059" + Name 1022 "r060" + Name 1029 "r061" + Name 1032 "r062" + Name 1037 "r063" + Name 1040 "r064" + Name 1044 "r065" + Name 1047 "r066" + Name 1050 "r067" + Name 1056 "r000" + Name 1059 "r001" + Name 1064 "r003" + Name 1067 "r004" + Name 1070 "r005" + Name 1073 "r006" + Name 1077 "r007" + Name 1088 "r008" + Name 1093 "r009" + Name 1096 "r010" + Name 1099 "r011" + Name 1102 "r012" + Name 1105 "r013" + Name 1108 "r014" + Name 1111 "r015" + Name 1114 "r016" + Name 1117 "r017" + Name 1120 "r018" + Name 1123 "r019" + Name 1126 "R020" + Name 1129 "r021" + Name 1132 "r022" + Name 1142 "r023" + Name 1145 "r024" + Name 1147 "ResType" + Name 1151 "r025" + Name 1154 "r026" + Name 1158 "r026a" + Name 1163 "r027" + Name 1166 "r028" + Name 1170 "r029" + Name 1173 "r030" + Name 1177 "r031" + Name 1181 "r032" + Name 1185 "r033" + Name 1188 "r034" + Name 1191 "r035" + Name 1194 "r036" + Name 1199 "r037" + Name 1202 "r038" + Name 1209 "r039" + Name 1212 "r049" + Name 1217 "r041" + Name 1220 "r042" + Name 1224 "r043" + Name 1227 "r044" + Name 1232 "r046" + Name 1239 "r000" + Name 1242 "r001" + Name 1247 "r003" + Name 1250 "r004" + Name 1253 "r005" + Name 1256 "r006" + Name 1260 "r007" + Name 1271 "r008" + Name 1276 "r009" + Name 1279 "r010" + Name 1282 "r011" + Name 1285 "r012" + Name 1288 "r013" + Name 1291 "r014" + Name 1294 "r015" + Name 1297 "r016" + Name 1300 "r017" + Name 1303 "r018" + Name 1306 "r019" + Name 1309 "R020" + Name 1312 "r021" + Name 1315 "r022" + Name 1328 "r023" + Name 1331 "r024" + Name 1333 "ResType" + Name 1337 "r025" + Name 1340 "r026" + Name 1344 "r026a" + Name 1349 "r027" + Name 1352 "r028" + Name 1356 "r029" + Name 1359 "r030" + Name 1363 "r031" + Name 1367 "r032" + Name 1371 "r033" + Name 1374 "r034" + Name 1377 "r035" + Name 1380 "r036" + Name 1385 "r037" + Name 1388 "r038" + Name 1395 "r039" + Name 1398 "r049" + Name 1403 "r041" + Name 1406 "r042" + Name 1410 "r043" + Name 1413 "r044" + Name 1418 "r046" + Name 1425 "r000" + Name 1428 "r001" + Name 1433 "r003" + Name 1436 "r004" + Name 1439 "r005" + Name 1442 "r006" + Name 1446 "r007" + Name 1457 "r008" + Name 1462 "r009" + Name 1465 "r010" + Name 1468 "r011" + Name 1471 "r012" + Name 1474 "r013" + Name 1477 "r014" + Name 1480 "r015" + Name 1483 "r016" + Name 1486 "r017" + Name 1489 "r018" + Name 1492 "r019" + Name 1495 "R020" + Name 1498 "r021" + Name 1501 "r022" + Name 1517 "r023" + Name 1520 "r024" + Name 1522 "ResType" + Name 1526 "r025" + Name 1529 "r026" + Name 1533 "r026a" + Name 1538 "r027" + Name 1541 "r028" + Name 1545 "r029" + Name 1548 "r030" + Name 1552 "r031" + Name 1556 "r032" + Name 1560 "r033" + Name 1563 "r034" + Name 1566 "r035" + Name 1569 "r036" + Name 1574 "r037" + Name 1577 "r038" + Name 1584 "r039" + Name 1587 "r049" + Name 1592 "r041" + Name 1595 "r042" + Name 1599 "r043" + Name 1602 "r044" + Name 1607 "r046" + Name 1614 "r0" + Name 1618 "r1" + Name 1622 "r2" + Name 1626 "r3" + Name 1630 "r4" + Name 1634 "r5" + Name 1638 "r6" + Name 1642 "r7" + Name 1646 "r8" + Name 1650 "r0" + Name 1654 "r1" + Name 1658 "r2" + Name 1662 "r3" + Name 1666 "r4" + Name 1670 "r5" + Name 1674 "r6" + Name 1678 "r7" + Name 1682 "r8" + Name 1686 "r0" + Name 1690 "r1" + Name 1694 "r2" + Name 1698 "r3" + Name 1702 "r4" + Name 1706 "r5" + Name 1710 "r6" + Name 1714 "r7" + Name 1718 "r8" + Name 1722 "r00" + Name 1726 "r01" + Name 1730 "r02" + Name 1734 "r03" + Name 1738 "r04" + Name 1742 "r05" + Name 1746 "r06" + Name 1750 "r07" + Name 1754 "r08" + Name 1758 "r09" + Name 1762 "r10" + Name 1766 "r11" + Name 1770 "r12" + Name 1774 "r13" + Name 1778 "r14" + Name 1782 "r15" + Name 1786 "r16" + Name 1791 "gs_ua" + Name 1792 "gs_ub" + Name 1793 "gs_uc" + Name 1795 "gs_ua2" + Name 1796 "gs_ub2" + Name 1797 "gs_uc2" + Name 1799 "gs_ua3" + Name 1800 "gs_ub3" + Name 1801 "gs_uc3" + Name 1803 "gs_ua4" + Name 1804 "gs_ub4" + Name 1805 "gs_uc4" 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypePointer Function 6(float) - 8: TypeVector 6(float) 2 - 9: TypePointer Function 8(fvec2) - 10: TypeMatrix 8(fvec2) 2 - 11: TypePointer Function 10 - 12: TypeFunction 2 7(ptr) 7(ptr) 9(ptr) 9(ptr) 11(ptr) 11(ptr) - 21: TypeVector 6(float) 3 - 22: TypePointer Function 21(fvec3) - 23: TypeMatrix 21(fvec3) 3 - 24: TypePointer Function 23 - 25: TypeFunction 2 7(ptr) 7(ptr) 22(ptr) 22(ptr) 24(ptr) 24(ptr) - 34: TypeVector 6(float) 4 - 35: TypePointer Function 34(fvec4) - 36: TypeMatrix 34(fvec4) 4 - 37: TypePointer Function 36 - 38: TypeFunction 2 7(ptr) 7(ptr) 35(ptr) 35(ptr) 37(ptr) 37(ptr) - 47: TypePointer Input 6(float) - 48(inF0): 47(ptr) Variable Input - 50: TypeBool - 61: TypeInt 32 1 - 64: TypeInt 32 0 - 66: TypePointer Input 64(int) - 67(inU0): 66(ptr) Variable Input - 73(inF1): 47(ptr) Variable Input - 80(inF2): 47(ptr) Variable Input - 84: 6(float) Constant 0 - 93: 64(int) Constant 7 - 113: 61(int) Constant 7 - 124(ResType): TypeStruct 6(float) 61(int) - 141: 6(float) Constant 1050288283 - 156: 6(float) Constant 1065353216 - 159: 64(int) Constant 2 - 194: TypePointer Input 8(fvec2) - 195(inF0): 194(ptr) Variable Input - 207: TypeVector 61(int) 2 - 210: TypeVector 64(int) 2 - 212: TypePointer Input 210(ivec2) - 213(inU0): 212(ptr) Variable Input - 219(inF1): 194(ptr) Variable Input - 226(inF2): 194(ptr) Variable Input - 230: 8(fvec2) ConstantComposite 84 84 - 231: TypeVector 50(bool) 2 - 241: 64(int) Constant 3 - 242: 210(ivec2) ConstantComposite 93 241 - 282(ResType): TypeStruct 8(fvec2) 207(ivec2) - 325: 6(float) Constant 1073741824 - 327: 64(int) Constant 1 - 328: 210(ivec2) ConstantComposite 327 159 - 363: 8(fvec2) ConstantComposite 156 325 - 365: TypePointer Input 21(fvec3) - 366(inF0): 365(ptr) Variable Input - 378: TypeVector 61(int) 3 - 381: TypeVector 64(int) 3 - 383: TypePointer Input 381(ivec3) - 384(inU0): 383(ptr) Variable Input - 390(inF1): 365(ptr) Variable Input - 397(inF2): 365(ptr) Variable Input - 401: 21(fvec3) ConstantComposite 84 84 84 - 402: TypeVector 50(bool) 3 - 412: 64(int) Constant 5 - 413: 381(ivec3) ConstantComposite 93 241 412 - 456(ResType): TypeStruct 21(fvec3) 378(ivec3) - 500: 381(ivec3) ConstantComposite 327 159 241 - 535: 6(float) Constant 1077936128 - 536: 21(fvec3) ConstantComposite 156 325 535 - 538: TypePointer Input 34(fvec4) - 539(inF0): 538(ptr) Variable Input - 551: TypeVector 61(int) 4 - 554: TypeVector 64(int) 4 - 556: TypePointer Input 554(ivec4) - 557(inU0): 556(ptr) Variable Input - 563(inF1): 538(ptr) Variable Input - 570(inF2): 538(ptr) Variable Input - 574: 34(fvec4) ConstantComposite 84 84 84 84 - 575: TypeVector 50(bool) 4 - 585: 554(ivec4) ConstantComposite 93 241 412 159 - 635(ResType): TypeStruct 34(fvec4) 551(ivec4) - 679: 64(int) Constant 4 - 680: 554(ivec4) ConstantComposite 327 159 241 679 - 715: 6(float) Constant 1082130432 - 716: 34(fvec4) ConstantComposite 156 325 535 715 - 718: TypePointer Input 10 - 719(inF0): 718(ptr) Variable Input - 733(inF1): 718(ptr) Variable Input - 739: 10 ConstantComposite 230 230 - 740: TypeMatrix 231(bvec2) 2 - 748(inF2): 718(ptr) Variable Input - 791(ResType): TypeStruct 10 207(ivec2) - 853: 8(fvec2) ConstantComposite 325 325 - 854: 10 ConstantComposite 853 853 - 856: TypePointer Input 23 - 857(inF0): 856(ptr) Variable Input - 871(inF1): 856(ptr) Variable Input - 877: 23 ConstantComposite 401 401 401 - 878: TypeMatrix 402(bvec3) 3 - 886(inF2): 856(ptr) Variable Input - 932(ResType): TypeStruct 23 378(ivec3) - 994: 21(fvec3) ConstantComposite 535 535 535 - 995: 23 ConstantComposite 994 994 994 - 997: TypePointer Input 36 - 998(inF0): 997(ptr) Variable Input - 1012(inF1): 997(ptr) Variable Input - 1018: 36 ConstantComposite 574 574 574 574 - 1019: TypeMatrix 575(bvec4) 4 - 1027(inF2): 997(ptr) Variable Input - 1076(ResType): TypeStruct 36 551(ivec4) - 1138: 34(fvec4) ConstantComposite 715 715 715 715 - 1139: 36 ConstantComposite 1138 1138 1138 1138 - 1249: TypePointer Function 64(int) - 1253: TypePointer Function 210(ivec2) - 1257: TypePointer Function 381(ivec3) - 1261: TypePointer Function 554(ivec4) + 8: TypeInt 32 0 + 9: TypePointer Function 8(int) + 10: TypeFunction 6(float) 7(ptr) 7(ptr) 7(ptr) 9(ptr) 9(ptr) + 18: TypeFunction 6(float) 7(ptr) 7(ptr) 7(ptr) + 24: TypeVector 6(float) 2 + 25: TypePointer Function 24(fvec2) + 26: TypeVector 8(int) 2 + 27: TypePointer Function 26(ivec2) + 28: TypeFunction 24(fvec2) 25(ptr) 25(ptr) 25(ptr) 27(ptr) 27(ptr) + 36: TypeVector 6(float) 3 + 37: TypePointer Function 36(fvec3) + 38: TypeVector 8(int) 3 + 39: TypePointer Function 38(ivec3) + 40: TypeFunction 36(fvec3) 37(ptr) 37(ptr) 37(ptr) 39(ptr) 39(ptr) + 48: TypeMatrix 24(fvec2) 2 + 49: TypePointer Function 48 + 50: TypeFunction 48 49(ptr) 49(ptr) 49(ptr) + 56: TypeMatrix 36(fvec3) 3 + 57: TypePointer Function 56 + 58: TypeFunction 56 57(ptr) 57(ptr) 57(ptr) + 64: TypeVector 6(float) 4 + 65: TypeMatrix 64(fvec4) 4 + 66: TypePointer Function 65 + 67: TypeFunction 65 66(ptr) 66(ptr) 66(ptr) + 73: TypeFunction 2 7(ptr) 7(ptr) 25(ptr) 25(ptr) 49(ptr) 49(ptr) + 82: TypeFunction 2 7(ptr) 7(ptr) 37(ptr) 37(ptr) 57(ptr) 57(ptr) + 91: TypePointer Function 64(fvec4) + 92: TypeFunction 2 7(ptr) 7(ptr) 91(ptr) 91(ptr) 66(ptr) 66(ptr) + 101: TypeMatrix 24(fvec2) 3 + 102: TypePointer Function 101 + 103: TypeMatrix 36(fvec3) 2 + 104: TypePointer Function 103 + 105: TypeMatrix 36(fvec3) 4 + 106: TypePointer Function 105 + 107: TypeMatrix 24(fvec2) 4 + 108: TypePointer Function 107 + 109: TypeFunction 2 7(ptr) 7(ptr) 25(ptr) 37(ptr) 102(ptr) 104(ptr) 57(ptr) 106(ptr) 108(ptr) + 121: TypeBool + 122: TypePointer Function 121(bool) + 138: TypeInt 32 1 + 139: TypePointer Function 138(int) + 165: 6(float) Constant 0 + 177: 8(int) Constant 7 + 207: 138(int) Constant 7 + 225(ResType): TypeStruct 6(float) 138(int) + 253: 6(float) Constant 1050288283 + 274: 6(float) Constant 1065353216 + 278: 8(int) Constant 2 + 342: TypeVector 138(int) 2 + 343: TypePointer Function 342(ivec2) + 369: 24(fvec2) ConstantComposite 165 165 + 370: TypeVector 121(bool) 2 + 383: 8(int) Constant 3 + 384: 26(ivec2) ConstantComposite 177 383 + 427: 8(int) Constant 8 + 428: 26(ivec2) ConstantComposite 177 427 + 444(ResType): TypeStruct 24(fvec2) 342(ivec2) + 451: TypePointer Function 370(bvec2) + 509: 6(float) Constant 1073741824 + 512: 8(int) Constant 1 + 513: 26(ivec2) ConstantComposite 512 278 + 560: 24(fvec2) ConstantComposite 274 509 + 578: TypeVector 138(int) 3 + 579: TypePointer Function 578(ivec3) + 605: 36(fvec3) ConstantComposite 165 165 165 + 606: TypeVector 121(bool) 3 + 619: 8(int) Constant 5 + 620: 38(ivec3) ConstantComposite 177 383 619 + 667: 8(int) Constant 4 + 668: 38(ivec3) ConstantComposite 278 383 667 + 684(ResType): TypeStruct 36(fvec3) 578(ivec3) + 691: TypePointer Function 606(bvec3) + 751: 38(ivec3) ConstantComposite 512 278 383 + 798: 6(float) Constant 1077936128 + 799: 36(fvec3) ConstantComposite 274 509 798 + 803: TypePointer Input 64(fvec4) + 804(inF0): 803(ptr) Variable Input + 819: TypeVector 138(int) 4 + 820: TypePointer Function 819(ivec4) + 824: TypeVector 8(int) 4 + 825: TypePointer Function 824(ivec4) + 830: TypePointer Input 824(ivec4) + 831(inU0): 830(ptr) Variable Input + 839(inF1): 803(ptr) Variable Input + 848(inF2): 803(ptr) Variable Input + 852: 64(fvec4) ConstantComposite 165 165 165 165 + 853: TypeVector 121(bool) 4 + 866: 824(ivec4) ConstantComposite 177 383 619 278 + 898: TypePointer Input 6(float) + 921: 8(int) Constant 9 + 922: 8(int) Constant 10 + 923: 824(ivec4) ConstantComposite 177 427 921 922 + 939(ResType): TypeStruct 64(fvec4) 819(ivec4) + 946: TypePointer Function 853(bvec4) + 1006: 824(ivec4) ConstantComposite 512 278 383 667 + 1053: 6(float) Constant 1082130432 + 1054: 64(fvec4) ConstantComposite 274 509 798 1053 + 1081: 48 ConstantComposite 369 369 + 1082: TypeMatrix 370(bvec2) 2 + 1147(ResType): TypeStruct 48 342(ivec2) + 1235: 24(fvec2) ConstantComposite 509 509 + 1236: 48 ConstantComposite 1235 1235 + 1264: 56 ConstantComposite 605 605 605 + 1265: TypeMatrix 606(bvec3) 3 + 1333(ResType): TypeStruct 56 578(ivec3) + 1421: 36(fvec3) ConstantComposite 798 798 798 + 1422: 56 ConstantComposite 1421 1421 1421 + 1450: 65 ConstantComposite 852 852 852 852 + 1451: TypeMatrix 853(bvec4) 4 + 1522(ResType): TypeStruct 65 819(ivec4) + 1610: 64(fvec4) ConstantComposite 1053 1053 1053 1053 + 1611: 65 ConstantComposite 1610 1610 1610 1610 + 1790: TypePointer Private 8(int) + 1791(gs_ua): 1790(ptr) Variable Private + 1792(gs_ub): 1790(ptr) Variable Private + 1793(gs_uc): 1790(ptr) Variable Private + 1794: TypePointer Private 26(ivec2) + 1795(gs_ua2): 1794(ptr) Variable Private + 1796(gs_ub2): 1794(ptr) Variable Private + 1797(gs_uc2): 1794(ptr) Variable Private + 1798: TypePointer Private 38(ivec3) + 1799(gs_ua3): 1798(ptr) Variable Private + 1800(gs_ub3): 1798(ptr) Variable Private + 1801(gs_uc3): 1798(ptr) Variable Private + 1802: TypePointer Private 824(ivec4) + 1803(gs_ua4): 1802(ptr) Variable Private + 1804(gs_ub4): 1802(ptr) Variable Private + 1805(gs_uc4): 1802(ptr) Variable Private 4(PixelShaderFunction): 2 Function None 3 5: Label - 49: 6(float) Load 48(inF0) - 51: 50(bool) All 49 - 52: 6(float) Load 48(inF0) - 53: 6(float) ExtInst 1(GLSL.std.450) 4(FAbs) 52 - 54: 6(float) Load 48(inF0) - 55: 6(float) ExtInst 1(GLSL.std.450) 17(Acos) 54 - 56: 6(float) Load 48(inF0) - 57: 50(bool) Any 56 - 58: 6(float) Load 48(inF0) - 59: 6(float) ExtInst 1(GLSL.std.450) 16(Asin) 58 - 60: 6(float) Load 48(inF0) - 62: 61(int) Bitcast 60 - 63: 6(float) Load 48(inF0) - 65: 64(int) Bitcast 63 - 68: 64(int) Load 67(inU0) - 69: 6(float) Bitcast 68 - 70: 6(float) Load 48(inF0) - 71: 6(float) ExtInst 1(GLSL.std.450) 18(Atan) 70 - 72: 6(float) Load 48(inF0) - 74: 6(float) Load 73(inF1) - 75: 6(float) ExtInst 1(GLSL.std.450) 25(Atan2) 72 74 - 76: 6(float) Load 48(inF0) - 77: 6(float) ExtInst 1(GLSL.std.450) 9(Ceil) 76 - 78: 6(float) Load 48(inF0) - 79: 6(float) Load 73(inF1) - 81: 6(float) Load 80(inF2) - 82: 6(float) ExtInst 1(GLSL.std.450) 43(FClamp) 78 79 81 - 83: 6(float) Load 48(inF0) - 85: 50(bool) FOrdLessThan 83 84 - SelectionMerge 87 None - BranchConditional 85 86 87 - 86: Label + 802(r000): 122(ptr) Variable Function + 807(r001): 91(ptr) Variable Function + 810(r002): 91(ptr) Variable Function + 813(r003): 122(ptr) Variable Function + 816(r004): 91(ptr) Variable Function + 821(r005): 820(ptr) Variable Function + 826(r006): 825(ptr) Variable Function + 829(r007): 91(ptr) Variable Function + 834(r009): 91(ptr) Variable Function + 837(r010): 91(ptr) Variable Function + 842(r011): 91(ptr) Variable Function + 845(r012): 91(ptr) Variable Function + 859(r013): 91(ptr) Variable Function + 862(r014): 91(ptr) Variable Function + 865(r015): 825(ptr) Variable Function + 868(r016): 91(ptr) Variable Function + 871(r017): 91(ptr) Variable Function + 874(r018): 91(ptr) Variable Function + 877(r019): 91(ptr) Variable Function + 880(r020): 91(ptr) Variable Function + 883(r021): 91(ptr) Variable Function + 886(r022): 91(ptr) Variable Function + 889(r023): 7(ptr) Variable Function + 893(r024): 7(ptr) Variable Function + 897(r025): 91(ptr) Variable Function + 909(r029): 91(ptr) Variable Function + 912(r030): 91(ptr) Variable Function + 915(r031): 91(ptr) Variable Function + 920(r032): 825(ptr) Variable Function + 925(r033): 825(ptr) Variable Function + 927(r034): 91(ptr) Variable Function + 930(r036): 91(ptr) Variable Function + 934(r037): 91(ptr) Variable Function + 937(r038): 91(ptr) Variable Function + 943(r039): 91(ptr) Variable Function + 947(r040): 946(ptr) Variable Function + 950(r041): 946(ptr) Variable Function + 953(r042): 91(ptr) Variable Function + 957(r039a): 91(ptr) Variable Function + 962(r043): 7(ptr) Variable Function + 965(r044): 91(ptr) Variable Function + 968(r045): 91(ptr) Variable Function + 972(r046): 91(ptr) Variable Function + 975(r047): 91(ptr) Variable Function + 979(r048): 91(ptr) Variable Function + 983(r049): 91(ptr) Variable Function + 986(r050): 91(ptr) Variable Function + 990(r051): 91(ptr) Variable Function + 993(r052): 91(ptr) Variable Function + 997(r053): 91(ptr) Variable Function + 1001(r054): 91(ptr) Variable Function + 1005(r055): 825(ptr) Variable Function + 1008(r056): 91(ptr) Variable Function + 1011(r057): 91(ptr) Variable Function + 1014(r058): 91(ptr) Variable Function + 1019(r059): 91(ptr) Variable Function + 1022(r060): 91(ptr) Variable Function + 1029(r061): 91(ptr) Variable Function + 1032(r062): 91(ptr) Variable Function + 1037(r063): 91(ptr) Variable Function + 1040(r064): 91(ptr) Variable Function + 1044(r065): 91(ptr) Variable Function + 1047(r066): 91(ptr) Variable Function + 1050(r067): 91(ptr) Variable Function + 805: 64(fvec4) Load 804(inF0) + 806: 121(bool) All 805 + Store 802(r000) 806 + 808: 64(fvec4) Load 804(inF0) + 809: 64(fvec4) ExtInst 1(GLSL.std.450) 4(FAbs) 808 + Store 807(r001) 809 + 811: 64(fvec4) Load 804(inF0) + 812: 64(fvec4) ExtInst 1(GLSL.std.450) 17(Acos) 811 + Store 810(r002) 812 + 814: 64(fvec4) Load 804(inF0) + 815: 121(bool) Any 814 + Store 813(r003) 815 + 817: 64(fvec4) Load 804(inF0) + 818: 64(fvec4) ExtInst 1(GLSL.std.450) 16(Asin) 817 + Store 816(r004) 818 + 822: 64(fvec4) Load 804(inF0) + 823: 819(ivec4) Bitcast 822 + Store 821(r005) 823 + 827: 64(fvec4) Load 804(inF0) + 828: 824(ivec4) Bitcast 827 + Store 826(r006) 828 + 832: 824(ivec4) Load 831(inU0) + 833: 64(fvec4) Bitcast 832 + Store 829(r007) 833 + 835: 64(fvec4) Load 804(inF0) + 836: 64(fvec4) ExtInst 1(GLSL.std.450) 18(Atan) 835 + Store 834(r009) 836 + 838: 64(fvec4) Load 804(inF0) + 840: 64(fvec4) Load 839(inF1) + 841: 64(fvec4) ExtInst 1(GLSL.std.450) 25(Atan2) 838 840 + Store 837(r010) 841 + 843: 64(fvec4) Load 804(inF0) + 844: 64(fvec4) ExtInst 1(GLSL.std.450) 9(Ceil) 843 + Store 842(r011) 844 + 846: 64(fvec4) Load 804(inF0) + 847: 64(fvec4) Load 839(inF1) + 849: 64(fvec4) Load 848(inF2) + 850: 64(fvec4) ExtInst 1(GLSL.std.450) 43(FClamp) 846 847 849 + Store 845(r012) 850 + 851: 64(fvec4) Load 804(inF0) + 854: 853(bvec4) FOrdLessThan 851 852 + 855: 121(bool) Any 854 + SelectionMerge 857 None + BranchConditional 855 856 857 + 856: Label Kill - 87: Label - 89: 6(float) Load 48(inF0) - 90: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 89 - 91: 6(float) Load 48(inF0) - 92: 6(float) ExtInst 1(GLSL.std.450) 20(Cosh) 91 - 94: 64(int) BitCount 93 - 95: 6(float) Load 48(inF0) - 96: 6(float) DPdx 95 - 97: 6(float) Load 48(inF0) - 98: 6(float) DPdxCoarse 97 - 99: 6(float) Load 48(inF0) - 100: 6(float) DPdxFine 99 - 101: 6(float) Load 48(inF0) - 102: 6(float) DPdy 101 - 103: 6(float) Load 48(inF0) - 104: 6(float) DPdyCoarse 103 - 105: 6(float) Load 48(inF0) - 106: 6(float) DPdyFine 105 - 107: 6(float) Load 48(inF0) - 108: 6(float) ExtInst 1(GLSL.std.450) 12(Degrees) 107 - 109: 6(float) Load 48(inF0) - 110: 6(float) ExtInst 1(GLSL.std.450) 27(Exp) 109 - 111: 6(float) Load 48(inF0) - 112: 6(float) ExtInst 1(GLSL.std.450) 29(Exp2) 111 - 114: 61(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 113 - 115: 61(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 113 - 116: 6(float) Load 48(inF0) - 117: 6(float) ExtInst 1(GLSL.std.450) 8(Floor) 116 - 118: 6(float) Load 48(inF0) - 119: 6(float) Load 73(inF1) - 120: 6(float) FMod 118 119 - 121: 6(float) Load 48(inF0) - 122: 6(float) ExtInst 1(GLSL.std.450) 10(Fract) 121 - 123: 6(float) Load 48(inF0) - 125:124(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 123 - 126: 61(int) CompositeExtract 125 1 - Store 73(inF1) 126 - 127: 6(float) CompositeExtract 125 0 - 128: 6(float) Load 48(inF0) - 129: 6(float) Fwidth 128 - 130: 6(float) Load 48(inF0) - 131: 50(bool) IsInf 130 - 132: 6(float) Load 48(inF0) - 133: 50(bool) IsNan 132 - 134: 6(float) Load 48(inF0) - 135: 6(float) Load 73(inF1) - 136: 6(float) ExtInst 1(GLSL.std.450) 53(Ldexp) 134 135 - 137: 6(float) Load 48(inF0) - 138: 6(float) ExtInst 1(GLSL.std.450) 28(Log) 137 - 139: 6(float) Load 48(inF0) - 140: 6(float) ExtInst 1(GLSL.std.450) 30(Log2) 139 - 142: 6(float) FMul 140 141 - 143: 6(float) Load 48(inF0) - 144: 6(float) ExtInst 1(GLSL.std.450) 30(Log2) 143 - 145: 6(float) Load 48(inF0) - 146: 6(float) Load 73(inF1) - 147: 6(float) ExtInst 1(GLSL.std.450) 40(FMax) 145 146 - 148: 6(float) Load 48(inF0) - 149: 6(float) Load 73(inF1) - 150: 6(float) ExtInst 1(GLSL.std.450) 37(FMin) 148 149 - 151: 6(float) Load 48(inF0) - 152: 6(float) Load 73(inF1) - 153: 6(float) ExtInst 1(GLSL.std.450) 26(Pow) 151 152 - 154: 6(float) Load 48(inF0) - 155: 6(float) ExtInst 1(GLSL.std.450) 11(Radians) 154 - 157: 6(float) Load 48(inF0) - 158: 6(float) FDiv 156 157 - 160: 64(int) BitReverse 159 - 161: 6(float) Load 48(inF0) - 162: 6(float) ExtInst 1(GLSL.std.450) 2(RoundEven) 161 - 163: 6(float) Load 48(inF0) - 164: 6(float) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 163 - 165: 6(float) Load 48(inF0) - 166: 6(float) ExtInst 1(GLSL.std.450) 43(FClamp) 165 84 156 - 167: 6(float) Load 48(inF0) - 168: 6(float) ExtInst 1(GLSL.std.450) 6(FSign) 167 - 169: 6(float) Load 48(inF0) - 170: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 169 - 171: 6(float) Load 48(inF0) - 172: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 171 - Store 73(inF1) 172 - 173: 6(float) Load 48(inF0) - 174: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 173 - Store 80(inF2) 174 - 175: 6(float) Load 48(inF0) - 176: 6(float) ExtInst 1(GLSL.std.450) 19(Sinh) 175 - 177: 6(float) Load 48(inF0) - 178: 6(float) Load 73(inF1) - 179: 6(float) Load 80(inF2) - 180: 6(float) ExtInst 1(GLSL.std.450) 49(SmoothStep) 177 178 179 - 181: 6(float) Load 48(inF0) - 182: 6(float) ExtInst 1(GLSL.std.450) 31(Sqrt) 181 - 183: 6(float) Load 48(inF0) - 184: 6(float) Load 73(inF1) - 185: 6(float) ExtInst 1(GLSL.std.450) 48(Step) 183 184 - 186: 6(float) Load 48(inF0) - 187: 6(float) ExtInst 1(GLSL.std.450) 15(Tan) 186 - 188: 6(float) Load 48(inF0) - 189: 6(float) ExtInst 1(GLSL.std.450) 21(Tanh) 188 - 190: 6(float) Load 48(inF0) - 191: 6(float) ExtInst 1(GLSL.std.450) 3(Trunc) 190 - ReturnValue 84 + 857: Label + 860: 64(fvec4) Load 804(inF0) + 861: 64(fvec4) ExtInst 1(GLSL.std.450) 14(Cos) 860 + Store 859(r013) 861 + 863: 64(fvec4) Load 804(inF0) + 864: 64(fvec4) ExtInst 1(GLSL.std.450) 20(Cosh) 863 + Store 862(r014) 864 + 867: 824(ivec4) BitCount 866 + Store 865(r015) 867 + 869: 64(fvec4) Load 804(inF0) + 870: 64(fvec4) DPdx 869 + Store 868(r016) 870 + 872: 64(fvec4) Load 804(inF0) + 873: 64(fvec4) DPdxCoarse 872 + Store 871(r017) 873 + 875: 64(fvec4) Load 804(inF0) + 876: 64(fvec4) DPdxFine 875 + Store 874(r018) 876 + 878: 64(fvec4) Load 804(inF0) + 879: 64(fvec4) DPdy 878 + Store 877(r019) 879 + 881: 64(fvec4) Load 804(inF0) + 882: 64(fvec4) DPdyCoarse 881 + Store 880(r020) 882 + 884: 64(fvec4) Load 804(inF0) + 885: 64(fvec4) DPdyFine 884 + Store 883(r021) 885 + 887: 64(fvec4) Load 804(inF0) + 888: 64(fvec4) ExtInst 1(GLSL.std.450) 12(Degrees) 887 + Store 886(r022) 888 + 890: 64(fvec4) Load 804(inF0) + 891: 64(fvec4) Load 839(inF1) + 892: 6(float) ExtInst 1(GLSL.std.450) 67(Distance) 890 891 + Store 889(r023) 892 + 894: 64(fvec4) Load 804(inF0) + 895: 64(fvec4) Load 839(inF1) + 896: 6(float) Dot 894 895 + Store 893(r024) 896 + 899: 898(ptr) AccessChain 804(inF0) 512 + 900: 6(float) Load 899 + 901: 898(ptr) AccessChain 839(inF1) 512 + 902: 6(float) Load 901 + 903: 6(float) FMul 900 902 + 904: 898(ptr) AccessChain 804(inF0) 278 + 905: 6(float) Load 904 + 906: 898(ptr) AccessChain 839(inF1) 383 + 907: 6(float) Load 906 + 908: 64(fvec4) CompositeConstruct 274 903 905 907 + Store 897(r025) 908 + 910: 64(fvec4) Load 804(inF0) + 911: 64(fvec4) ExtInst 1(GLSL.std.450) 27(Exp) 910 + Store 909(r029) 911 + 913: 64(fvec4) Load 804(inF0) + 914: 64(fvec4) ExtInst 1(GLSL.std.450) 29(Exp2) 913 + Store 912(r030) 914 + 916: 64(fvec4) Load 804(inF0) + 917: 64(fvec4) Load 839(inF1) + 918: 64(fvec4) Load 848(inF2) + 919: 64(fvec4) ExtInst 1(GLSL.std.450) 70(FaceForward) 916 917 918 + Store 915(r031) 919 + 924: 824(ivec4) ExtInst 1(GLSL.std.450) 75(FindUMsb) 923 + Store 920(r032) 924 + 926: 824(ivec4) ExtInst 1(GLSL.std.450) 73(FindILsb) 923 + Store 925(r033) 926 + 928: 64(fvec4) Load 804(inF0) + 929: 64(fvec4) ExtInst 1(GLSL.std.450) 8(Floor) 928 + Store 927(r034) 929 + 931: 64(fvec4) Load 804(inF0) + 932: 64(fvec4) Load 839(inF1) + 933: 64(fvec4) FMod 931 932 + Store 930(r036) 933 + 935: 64(fvec4) Load 804(inF0) + 936: 64(fvec4) ExtInst 1(GLSL.std.450) 10(Fract) 935 + Store 934(r037) 936 + 938: 64(fvec4) Load 804(inF0) + 940:939(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 938 + 941: 819(ivec4) CompositeExtract 940 1 + Store 839(inF1) 941 + 942: 64(fvec4) CompositeExtract 940 0 + Store 937(r038) 942 + 944: 64(fvec4) Load 804(inF0) + 945: 64(fvec4) Fwidth 944 + Store 943(r039) 945 + 948: 64(fvec4) Load 804(inF0) + 949: 853(bvec4) IsInf 948 + Store 947(r040) 949 + 951: 64(fvec4) Load 804(inF0) + 952: 853(bvec4) IsNan 951 + Store 950(r041) 952 + 954: 64(fvec4) Load 804(inF0) + 955: 64(fvec4) Load 839(inF1) + 956: 64(fvec4) ExtInst 1(GLSL.std.450) 53(Ldexp) 954 955 + Store 953(r042) 956 + 958: 64(fvec4) Load 804(inF0) + 959: 64(fvec4) Load 839(inF1) + 960: 64(fvec4) Load 848(inF2) + 961: 64(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 958 959 960 + Store 957(r039a) 961 + 963: 64(fvec4) Load 804(inF0) + 964: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 963 + Store 962(r043) 964 + 966: 64(fvec4) Load 804(inF0) + 967: 64(fvec4) ExtInst 1(GLSL.std.450) 28(Log) 966 + Store 965(r044) 967 + 969: 64(fvec4) Load 804(inF0) + 970: 64(fvec4) ExtInst 1(GLSL.std.450) 30(Log2) 969 + 971: 64(fvec4) VectorTimesScalar 970 253 + Store 968(r045) 971 + 973: 64(fvec4) Load 804(inF0) + 974: 64(fvec4) ExtInst 1(GLSL.std.450) 30(Log2) 973 + Store 972(r046) 974 + 976: 64(fvec4) Load 804(inF0) + 977: 64(fvec4) Load 839(inF1) + 978: 64(fvec4) ExtInst 1(GLSL.std.450) 40(FMax) 976 977 + Store 975(r047) 978 + 980: 64(fvec4) Load 804(inF0) + 981: 64(fvec4) Load 839(inF1) + 982: 64(fvec4) ExtInst 1(GLSL.std.450) 37(FMin) 980 981 + Store 979(r048) 982 + 984: 64(fvec4) Load 804(inF0) + 985: 64(fvec4) ExtInst 1(GLSL.std.450) 69(Normalize) 984 + Store 983(r049) 985 + 987: 64(fvec4) Load 804(inF0) + 988: 64(fvec4) Load 839(inF1) + 989: 64(fvec4) ExtInst 1(GLSL.std.450) 26(Pow) 987 988 + Store 986(r050) 989 + 991: 64(fvec4) Load 804(inF0) + 992: 64(fvec4) ExtInst 1(GLSL.std.450) 11(Radians) 991 + Store 990(r051) 992 + 994: 64(fvec4) Load 804(inF0) + 995: 64(fvec4) CompositeConstruct 274 274 274 274 + 996: 64(fvec4) FDiv 995 994 + Store 993(r052) 996 + 998: 64(fvec4) Load 804(inF0) + 999: 64(fvec4) Load 839(inF1) + 1000: 64(fvec4) ExtInst 1(GLSL.std.450) 71(Reflect) 998 999 + Store 997(r053) 1000 + 1002: 64(fvec4) Load 804(inF0) + 1003: 64(fvec4) Load 839(inF1) + 1004: 64(fvec4) ExtInst 1(GLSL.std.450) 72(Refract) 1002 1003 509 + Store 1001(r054) 1004 + 1007: 824(ivec4) BitReverse 1006 + Store 1005(r055) 1007 + 1009: 64(fvec4) Load 804(inF0) + 1010: 64(fvec4) ExtInst 1(GLSL.std.450) 2(RoundEven) 1009 + Store 1008(r056) 1010 + 1012: 64(fvec4) Load 804(inF0) + 1013: 64(fvec4) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 1012 + Store 1011(r057) 1013 + 1015: 64(fvec4) Load 804(inF0) + 1016: 64(fvec4) CompositeConstruct 165 165 165 165 + 1017: 64(fvec4) CompositeConstruct 274 274 274 274 + 1018: 64(fvec4) ExtInst 1(GLSL.std.450) 43(FClamp) 1015 1016 1017 + Store 1014(r058) 1018 + 1020: 64(fvec4) Load 804(inF0) + 1021: 64(fvec4) ExtInst 1(GLSL.std.450) 6(FSign) 1020 + Store 1019(r059) 1021 + 1023: 64(fvec4) Load 804(inF0) + 1024: 64(fvec4) ExtInst 1(GLSL.std.450) 13(Sin) 1023 + Store 1022(r060) 1024 + 1025: 64(fvec4) Load 804(inF0) + 1026: 64(fvec4) ExtInst 1(GLSL.std.450) 13(Sin) 1025 + Store 839(inF1) 1026 + 1027: 64(fvec4) Load 804(inF0) + 1028: 64(fvec4) ExtInst 1(GLSL.std.450) 14(Cos) 1027 + Store 848(inF2) 1028 + 1030: 64(fvec4) Load 804(inF0) + 1031: 64(fvec4) ExtInst 1(GLSL.std.450) 19(Sinh) 1030 + Store 1029(r061) 1031 + 1033: 64(fvec4) Load 804(inF0) + 1034: 64(fvec4) Load 839(inF1) + 1035: 64(fvec4) Load 848(inF2) + 1036: 64(fvec4) ExtInst 1(GLSL.std.450) 49(SmoothStep) 1033 1034 1035 + Store 1032(r062) 1036 + 1038: 64(fvec4) Load 804(inF0) + 1039: 64(fvec4) ExtInst 1(GLSL.std.450) 31(Sqrt) 1038 + Store 1037(r063) 1039 + 1041: 64(fvec4) Load 804(inF0) + 1042: 64(fvec4) Load 839(inF1) + 1043: 64(fvec4) ExtInst 1(GLSL.std.450) 48(Step) 1041 1042 + Store 1040(r064) 1043 + 1045: 64(fvec4) Load 804(inF0) + 1046: 64(fvec4) ExtInst 1(GLSL.std.450) 15(Tan) 1045 + Store 1044(r065) 1046 + 1048: 64(fvec4) Load 804(inF0) + 1049: 64(fvec4) ExtInst 1(GLSL.std.450) 21(Tanh) 1048 + Store 1047(r066) 1049 + 1051: 64(fvec4) Load 804(inF0) + 1052: 64(fvec4) ExtInst 1(GLSL.std.450) 3(Trunc) 1051 + Store 1050(r067) 1052 + ReturnValue 1054 FunctionEnd -19(TestGenMul(f1;f1;vf2;vf2;mf22;mf22;): 2 Function None 12 - 13(inF0): 7(ptr) FunctionParameter - 14(inF1): 7(ptr) FunctionParameter - 15(inFV0): 9(ptr) FunctionParameter - 16(inFV1): 9(ptr) FunctionParameter - 17(inFM0): 11(ptr) FunctionParameter - 18(inFM1): 11(ptr) FunctionParameter - 20: Label - 1141(r0): 7(ptr) Variable Function - 1145(r1): 9(ptr) Variable Function - 1149(r2): 9(ptr) Variable Function - 1153(r3): 7(ptr) Variable Function - 1157(r4): 9(ptr) Variable Function - 1161(r5): 9(ptr) Variable Function - 1165(r6): 11(ptr) Variable Function - 1169(r7): 11(ptr) Variable Function - 1173(r8): 11(ptr) Variable Function - 1142: 6(float) Load 13(inF0) - 1143: 6(float) Load 14(inF1) - 1144: 6(float) FMul 1142 1143 - Store 1141(r0) 1144 - 1146: 8(fvec2) Load 15(inFV0) - 1147: 6(float) Load 13(inF0) - 1148: 8(fvec2) VectorTimesScalar 1146 1147 - Store 1145(r1) 1148 - 1150: 6(float) Load 13(inF0) - 1151: 8(fvec2) Load 15(inFV0) - 1152: 8(fvec2) VectorTimesScalar 1151 1150 - Store 1149(r2) 1152 - 1154: 8(fvec2) Load 15(inFV0) - 1155: 8(fvec2) Load 16(inFV1) - 1156: 6(float) Dot 1154 1155 - Store 1153(r3) 1156 - 1158: 10 Load 17(inFM0) - 1159: 8(fvec2) Load 15(inFV0) - 1160: 8(fvec2) MatrixTimesVector 1158 1159 - Store 1157(r4) 1160 - 1162: 8(fvec2) Load 15(inFV0) - 1163: 10 Load 17(inFM0) - 1164: 8(fvec2) VectorTimesMatrix 1162 1163 - Store 1161(r5) 1164 - 1166: 10 Load 17(inFM0) - 1167: 6(float) Load 13(inF0) - 1168: 10 MatrixTimesScalar 1166 1167 - Store 1165(r6) 1168 - 1170: 6(float) Load 13(inF0) - 1171: 10 Load 17(inFM0) - 1172: 10 MatrixTimesScalar 1171 1170 - Store 1169(r7) 1172 - 1174: 10 Load 17(inFM0) - 1175: 10 Load 18(inFM1) - 1176: 10 MatrixTimesMatrix 1174 1175 - Store 1173(r8) 1176 +16(PixelShaderFunctionS(f1;f1;f1;u1;u1;): 6(float) Function None 10 + 11(inF0): 7(ptr) FunctionParameter + 12(inF1): 7(ptr) FunctionParameter + 13(inF2): 7(ptr) FunctionParameter + 14(inU0): 9(ptr) FunctionParameter + 15(inU1): 9(ptr) FunctionParameter + 17: Label + 123(r000): 122(ptr) Variable Function + 126(r001): 7(ptr) Variable Function + 129(r002): 7(ptr) Variable Function + 132(r003): 122(ptr) Variable Function + 135(r004): 7(ptr) Variable Function + 140(r005): 139(ptr) Variable Function + 143(r006): 9(ptr) Variable Function + 146(r007): 7(ptr) Variable Function + 149(r009): 7(ptr) Variable Function + 152(r010): 7(ptr) Variable Function + 156(r011): 7(ptr) Variable Function + 159(r012): 7(ptr) Variable Function + 170(r014): 7(ptr) Variable Function + 173(r015): 7(ptr) Variable Function + 176(r016): 9(ptr) Variable Function + 179(r017): 7(ptr) Variable Function + 182(r018): 7(ptr) Variable Function + 185(r019): 7(ptr) Variable Function + 188(r020): 7(ptr) Variable Function + 191(r021): 7(ptr) Variable Function + 194(r022): 7(ptr) Variable Function + 197(r023): 7(ptr) Variable Function + 200(r027): 7(ptr) Variable Function + 203(r028): 7(ptr) Variable Function + 206(r029): 9(ptr) Variable Function + 210(r030): 9(ptr) Variable Function + 213(r031): 7(ptr) Variable Function + 216(r033): 7(ptr) Variable Function + 220(r034): 7(ptr) Variable Function + 223(r035): 7(ptr) Variable Function + 229(r036): 7(ptr) Variable Function + 232(r037): 122(ptr) Variable Function + 235(r038): 122(ptr) Variable Function + 238(r039): 7(ptr) Variable Function + 242(r039a): 7(ptr) Variable Function + 247(r040): 7(ptr) Variable Function + 250(r041): 7(ptr) Variable Function + 255(r042): 7(ptr) Variable Function + 258(r043): 7(ptr) Variable Function + 262(r044): 7(ptr) Variable Function + 266(r045): 7(ptr) Variable Function + 270(r046): 7(ptr) Variable Function + 273(r047): 7(ptr) Variable Function + 277(r048): 9(ptr) Variable Function + 280(r049): 7(ptr) Variable Function + 283(r050): 7(ptr) Variable Function + 286(r051): 7(ptr) Variable Function + 289(r052): 7(ptr) Variable Function + 292(r053): 7(ptr) Variable Function + 299(r055): 7(ptr) Variable Function + 302(r056): 7(ptr) Variable Function + 307(r057): 7(ptr) Variable Function + 310(r058): 7(ptr) Variable Function + 314(r059): 7(ptr) Variable Function + 317(r060): 7(ptr) Variable Function + 320(r061): 7(ptr) Variable Function + 124: 6(float) Load 11(inF0) + 125: 121(bool) All 124 + Store 123(r000) 125 + 127: 6(float) Load 11(inF0) + 128: 6(float) ExtInst 1(GLSL.std.450) 4(FAbs) 127 + Store 126(r001) 128 + 130: 6(float) Load 11(inF0) + 131: 6(float) ExtInst 1(GLSL.std.450) 17(Acos) 130 + Store 129(r002) 131 + 133: 6(float) Load 11(inF0) + 134: 121(bool) Any 133 + Store 132(r003) 134 + 136: 6(float) Load 11(inF0) + 137: 6(float) ExtInst 1(GLSL.std.450) 16(Asin) 136 + Store 135(r004) 137 + 141: 6(float) Load 11(inF0) + 142: 138(int) Bitcast 141 + Store 140(r005) 142 + 144: 6(float) Load 11(inF0) + 145: 8(int) Bitcast 144 + Store 143(r006) 145 + 147: 8(int) Load 14(inU0) + 148: 6(float) Bitcast 147 + Store 146(r007) 148 + 150: 6(float) Load 11(inF0) + 151: 6(float) ExtInst 1(GLSL.std.450) 18(Atan) 150 + Store 149(r009) 151 + 153: 6(float) Load 11(inF0) + 154: 6(float) Load 12(inF1) + 155: 6(float) ExtInst 1(GLSL.std.450) 25(Atan2) 153 154 + Store 152(r010) 155 + 157: 6(float) Load 11(inF0) + 158: 6(float) ExtInst 1(GLSL.std.450) 9(Ceil) 157 + Store 156(r011) 158 + 160: 6(float) Load 11(inF0) + 161: 6(float) Load 12(inF1) + 162: 6(float) Load 13(inF2) + 163: 6(float) ExtInst 1(GLSL.std.450) 43(FClamp) 160 161 162 + Store 159(r012) 163 + 164: 6(float) Load 11(inF0) + 166: 121(bool) FOrdLessThan 164 165 + SelectionMerge 168 None + BranchConditional 166 167 168 + 167: Label + Kill + 168: Label + 171: 6(float) Load 11(inF0) + 172: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 171 + Store 170(r014) 172 + 174: 6(float) Load 11(inF0) + 175: 6(float) ExtInst 1(GLSL.std.450) 20(Cosh) 174 + Store 173(r015) 175 + 178: 8(int) BitCount 177 + Store 176(r016) 178 + 180: 6(float) Load 11(inF0) + 181: 6(float) DPdx 180 + Store 179(r017) 181 + 183: 6(float) Load 11(inF0) + 184: 6(float) DPdxCoarse 183 + Store 182(r018) 184 + 186: 6(float) Load 11(inF0) + 187: 6(float) DPdxFine 186 + Store 185(r019) 187 + 189: 6(float) Load 11(inF0) + 190: 6(float) DPdy 189 + Store 188(r020) 190 + 192: 6(float) Load 11(inF0) + 193: 6(float) DPdyCoarse 192 + Store 191(r021) 193 + 195: 6(float) Load 11(inF0) + 196: 6(float) DPdyFine 195 + Store 194(r022) 196 + 198: 6(float) Load 11(inF0) + 199: 6(float) ExtInst 1(GLSL.std.450) 12(Degrees) 198 + Store 197(r023) 199 + 201: 6(float) Load 11(inF0) + 202: 6(float) ExtInst 1(GLSL.std.450) 27(Exp) 201 + Store 200(r027) 202 + 204: 6(float) Load 11(inF0) + 205: 6(float) ExtInst 1(GLSL.std.450) 29(Exp2) 204 + Store 203(r028) 205 + 208: 138(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 207 + 209: 8(int) Bitcast 208 + Store 206(r029) 209 + 211: 138(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 207 + 212: 8(int) Bitcast 211 + Store 210(r030) 212 + 214: 6(float) Load 11(inF0) + 215: 6(float) ExtInst 1(GLSL.std.450) 8(Floor) 214 + Store 213(r031) 215 + 217: 6(float) Load 11(inF0) + 218: 6(float) Load 12(inF1) + 219: 6(float) FMod 217 218 + Store 216(r033) 219 + 221: 6(float) Load 11(inF0) + 222: 6(float) ExtInst 1(GLSL.std.450) 10(Fract) 221 + Store 220(r034) 222 + 224: 6(float) Load 11(inF0) + 226:225(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 224 + 227: 138(int) CompositeExtract 226 1 + Store 12(inF1) 227 + 228: 6(float) CompositeExtract 226 0 + Store 223(r035) 228 + 230: 6(float) Load 11(inF0) + 231: 6(float) Fwidth 230 + Store 229(r036) 231 + 233: 6(float) Load 11(inF0) + 234: 121(bool) IsInf 233 + Store 232(r037) 234 + 236: 6(float) Load 11(inF0) + 237: 121(bool) IsNan 236 + Store 235(r038) 237 + 239: 6(float) Load 11(inF0) + 240: 6(float) Load 12(inF1) + 241: 6(float) ExtInst 1(GLSL.std.450) 53(Ldexp) 239 240 + Store 238(r039) 241 + 243: 6(float) Load 11(inF0) + 244: 6(float) Load 12(inF1) + 245: 6(float) Load 13(inF2) + 246: 6(float) ExtInst 1(GLSL.std.450) 46(FMix) 243 244 245 + Store 242(r039a) 246 + 248: 6(float) Load 11(inF0) + 249: 6(float) ExtInst 1(GLSL.std.450) 28(Log) 248 + Store 247(r040) 249 + 251: 6(float) Load 11(inF0) + 252: 6(float) ExtInst 1(GLSL.std.450) 30(Log2) 251 + 254: 6(float) FMul 252 253 + Store 250(r041) 254 + 256: 6(float) Load 11(inF0) + 257: 6(float) ExtInst 1(GLSL.std.450) 30(Log2) 256 + Store 255(r042) 257 + 259: 6(float) Load 11(inF0) + 260: 6(float) Load 12(inF1) + 261: 6(float) ExtInst 1(GLSL.std.450) 40(FMax) 259 260 + Store 258(r043) 261 + 263: 6(float) Load 11(inF0) + 264: 6(float) Load 12(inF1) + 265: 6(float) ExtInst 1(GLSL.std.450) 37(FMin) 263 264 + Store 262(r044) 265 + 267: 6(float) Load 11(inF0) + 268: 6(float) Load 12(inF1) + 269: 6(float) ExtInst 1(GLSL.std.450) 26(Pow) 267 268 + Store 266(r045) 269 + 271: 6(float) Load 11(inF0) + 272: 6(float) ExtInst 1(GLSL.std.450) 11(Radians) 271 + Store 270(r046) 272 + 275: 6(float) Load 11(inF0) + 276: 6(float) FDiv 274 275 + Store 273(r047) 276 + 279: 8(int) BitReverse 278 + Store 277(r048) 279 + 281: 6(float) Load 11(inF0) + 282: 6(float) ExtInst 1(GLSL.std.450) 2(RoundEven) 281 + Store 280(r049) 282 + 284: 6(float) Load 11(inF0) + 285: 6(float) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 284 + Store 283(r050) 285 + 287: 6(float) Load 11(inF0) + 288: 6(float) ExtInst 1(GLSL.std.450) 43(FClamp) 287 165 274 + Store 286(r051) 288 + 290: 6(float) Load 11(inF0) + 291: 6(float) ExtInst 1(GLSL.std.450) 6(FSign) 290 + Store 289(r052) 291 + 293: 6(float) Load 11(inF0) + 294: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 293 + Store 292(r053) 294 + 295: 6(float) Load 11(inF0) + 296: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 295 + Store 12(inF1) 296 + 297: 6(float) Load 11(inF0) + 298: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 297 + Store 13(inF2) 298 + 300: 6(float) Load 11(inF0) + 301: 6(float) ExtInst 1(GLSL.std.450) 19(Sinh) 300 + Store 299(r055) 301 + 303: 6(float) Load 11(inF0) + 304: 6(float) Load 12(inF1) + 305: 6(float) Load 13(inF2) + 306: 6(float) ExtInst 1(GLSL.std.450) 49(SmoothStep) 303 304 305 + Store 302(r056) 306 + 308: 6(float) Load 11(inF0) + 309: 6(float) ExtInst 1(GLSL.std.450) 31(Sqrt) 308 + Store 307(r057) 309 + 311: 6(float) Load 11(inF0) + 312: 6(float) Load 12(inF1) + 313: 6(float) ExtInst 1(GLSL.std.450) 48(Step) 311 312 + Store 310(r058) 313 + 315: 6(float) Load 11(inF0) + 316: 6(float) ExtInst 1(GLSL.std.450) 15(Tan) 315 + Store 314(r059) 316 + 318: 6(float) Load 11(inF0) + 319: 6(float) ExtInst 1(GLSL.std.450) 21(Tanh) 318 + Store 317(r060) 319 + 321: 6(float) Load 11(inF0) + 322: 6(float) ExtInst 1(GLSL.std.450) 3(Trunc) 321 + Store 320(r061) 322 + ReturnValue 165 + FunctionEnd +22(PixelShaderFunction1(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 165 + FunctionEnd +34(PixelShaderFunction2(vf2;vf2;vf2;vu2;vu2;): 24(fvec2) Function None 28 + 29(inF0): 25(ptr) FunctionParameter + 30(inF1): 25(ptr) FunctionParameter + 31(inF2): 25(ptr) FunctionParameter + 32(inU0): 27(ptr) FunctionParameter + 33(inU1): 27(ptr) FunctionParameter + 35: Label + 327(r000): 122(ptr) Variable Function + 330(r001): 25(ptr) Variable Function + 333(r002): 25(ptr) Variable Function + 336(r003): 122(ptr) Variable Function + 339(r004): 25(ptr) Variable Function + 344(r005): 343(ptr) Variable Function + 347(r006): 27(ptr) Variable Function + 350(r007): 25(ptr) Variable Function + 353(r009): 25(ptr) Variable Function + 356(r010): 25(ptr) Variable Function + 360(r011): 25(ptr) Variable Function + 363(r012): 25(ptr) Variable Function + 376(r013): 25(ptr) Variable Function + 379(r015): 25(ptr) Variable Function + 382(r016): 27(ptr) Variable Function + 386(r017): 25(ptr) Variable Function + 389(r018): 25(ptr) Variable Function + 392(r019): 25(ptr) Variable Function + 395(r020): 25(ptr) Variable Function + 398(r021): 25(ptr) Variable Function + 401(r022): 25(ptr) Variable Function + 404(r023): 25(ptr) Variable Function + 407(r026): 7(ptr) Variable Function + 411(r027): 7(ptr) Variable Function + 415(r028): 25(ptr) Variable Function + 418(r029): 25(ptr) Variable Function + 421(r030): 25(ptr) Variable Function + 426(r031): 27(ptr) Variable Function + 430(r032): 27(ptr) Variable Function + 432(r033): 25(ptr) Variable Function + 435(r035): 25(ptr) Variable Function + 439(r036): 25(ptr) Variable Function + 442(r037): 25(ptr) Variable Function + 448(r038): 25(ptr) Variable Function + 452(r039): 451(ptr) Variable Function + 455(r040): 451(ptr) Variable Function + 458(r041): 25(ptr) Variable Function + 462(r039a): 25(ptr) Variable Function + 467(r042): 7(ptr) Variable Function + 470(r043): 25(ptr) Variable Function + 473(r044): 25(ptr) Variable Function + 477(r045): 25(ptr) Variable Function + 480(r046): 25(ptr) Variable Function + 484(r047): 25(ptr) Variable Function + 488(r048): 25(ptr) Variable Function + 491(r049): 25(ptr) Variable Function + 495(r050): 25(ptr) Variable Function + 498(r051): 25(ptr) Variable Function + 502(r052): 25(ptr) Variable Function + 506(r053): 25(ptr) Variable Function + 511(r054): 27(ptr) Variable Function + 515(r055): 25(ptr) Variable Function + 518(r056): 25(ptr) Variable Function + 521(r057): 25(ptr) Variable Function + 526(r058): 25(ptr) Variable Function + 529(r059): 25(ptr) Variable Function + 536(r060): 25(ptr) Variable Function + 539(r061): 25(ptr) Variable Function + 544(r062): 25(ptr) Variable Function + 547(r063): 25(ptr) Variable Function + 551(r064): 25(ptr) Variable Function + 554(r065): 25(ptr) Variable Function + 557(r066): 25(ptr) Variable Function + 328: 24(fvec2) Load 29(inF0) + 329: 121(bool) All 328 + Store 327(r000) 329 + 331: 24(fvec2) Load 29(inF0) + 332: 24(fvec2) ExtInst 1(GLSL.std.450) 4(FAbs) 331 + Store 330(r001) 332 + 334: 24(fvec2) Load 29(inF0) + 335: 24(fvec2) ExtInst 1(GLSL.std.450) 17(Acos) 334 + Store 333(r002) 335 + 337: 24(fvec2) Load 29(inF0) + 338: 121(bool) Any 337 + Store 336(r003) 338 + 340: 24(fvec2) Load 29(inF0) + 341: 24(fvec2) ExtInst 1(GLSL.std.450) 16(Asin) 340 + Store 339(r004) 341 + 345: 24(fvec2) Load 29(inF0) + 346: 342(ivec2) Bitcast 345 + Store 344(r005) 346 + 348: 24(fvec2) Load 29(inF0) + 349: 26(ivec2) Bitcast 348 + Store 347(r006) 349 + 351: 26(ivec2) Load 32(inU0) + 352: 24(fvec2) Bitcast 351 + Store 350(r007) 352 + 354: 24(fvec2) Load 29(inF0) + 355: 24(fvec2) ExtInst 1(GLSL.std.450) 18(Atan) 354 + Store 353(r009) 355 + 357: 24(fvec2) Load 29(inF0) + 358: 24(fvec2) Load 30(inF1) + 359: 24(fvec2) ExtInst 1(GLSL.std.450) 25(Atan2) 357 358 + Store 356(r010) 359 + 361: 24(fvec2) Load 29(inF0) + 362: 24(fvec2) ExtInst 1(GLSL.std.450) 9(Ceil) 361 + Store 360(r011) 362 + 364: 24(fvec2) Load 29(inF0) + 365: 24(fvec2) Load 30(inF1) + 366: 24(fvec2) Load 31(inF2) + 367: 24(fvec2) ExtInst 1(GLSL.std.450) 43(FClamp) 364 365 366 + Store 363(r012) 367 + 368: 24(fvec2) Load 29(inF0) + 371: 370(bvec2) FOrdLessThan 368 369 + 372: 121(bool) Any 371 + SelectionMerge 374 None + BranchConditional 372 373 374 + 373: Label + Kill + 374: Label + 377: 24(fvec2) Load 29(inF0) + 378: 24(fvec2) ExtInst 1(GLSL.std.450) 14(Cos) 377 + Store 376(r013) 378 + 380: 24(fvec2) Load 29(inF0) + 381: 24(fvec2) ExtInst 1(GLSL.std.450) 20(Cosh) 380 + Store 379(r015) 381 + 385: 26(ivec2) BitCount 384 + Store 382(r016) 385 + 387: 24(fvec2) Load 29(inF0) + 388: 24(fvec2) DPdx 387 + Store 386(r017) 388 + 390: 24(fvec2) Load 29(inF0) + 391: 24(fvec2) DPdxCoarse 390 + Store 389(r018) 391 + 393: 24(fvec2) Load 29(inF0) + 394: 24(fvec2) DPdxFine 393 + Store 392(r019) 394 + 396: 24(fvec2) Load 29(inF0) + 397: 24(fvec2) DPdy 396 + Store 395(r020) 397 + 399: 24(fvec2) Load 29(inF0) + 400: 24(fvec2) DPdyCoarse 399 + Store 398(r021) 400 + 402: 24(fvec2) Load 29(inF0) + 403: 24(fvec2) DPdyFine 402 + Store 401(r022) 403 + 405: 24(fvec2) Load 29(inF0) + 406: 24(fvec2) ExtInst 1(GLSL.std.450) 12(Degrees) 405 + Store 404(r023) 406 + 408: 24(fvec2) Load 29(inF0) + 409: 24(fvec2) Load 30(inF1) + 410: 6(float) ExtInst 1(GLSL.std.450) 67(Distance) 408 409 + Store 407(r026) 410 + 412: 24(fvec2) Load 29(inF0) + 413: 24(fvec2) Load 30(inF1) + 414: 6(float) Dot 412 413 + Store 411(r027) 414 + 416: 24(fvec2) Load 29(inF0) + 417: 24(fvec2) ExtInst 1(GLSL.std.450) 27(Exp) 416 + Store 415(r028) 417 + 419: 24(fvec2) Load 29(inF0) + 420: 24(fvec2) ExtInst 1(GLSL.std.450) 29(Exp2) 419 + Store 418(r029) 420 + 422: 24(fvec2) Load 29(inF0) + 423: 24(fvec2) Load 30(inF1) + 424: 24(fvec2) Load 31(inF2) + 425: 24(fvec2) ExtInst 1(GLSL.std.450) 70(FaceForward) 422 423 424 + Store 421(r030) 425 + 429: 26(ivec2) ExtInst 1(GLSL.std.450) 75(FindUMsb) 428 + Store 426(r031) 429 + 431: 26(ivec2) ExtInst 1(GLSL.std.450) 73(FindILsb) 428 + Store 430(r032) 431 + 433: 24(fvec2) Load 29(inF0) + 434: 24(fvec2) ExtInst 1(GLSL.std.450) 8(Floor) 433 + Store 432(r033) 434 + 436: 24(fvec2) Load 29(inF0) + 437: 24(fvec2) Load 30(inF1) + 438: 24(fvec2) FMod 436 437 + Store 435(r035) 438 + 440: 24(fvec2) Load 29(inF0) + 441: 24(fvec2) ExtInst 1(GLSL.std.450) 10(Fract) 440 + Store 439(r036) 441 + 443: 24(fvec2) Load 29(inF0) + 445:444(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 443 + 446: 342(ivec2) CompositeExtract 445 1 + Store 30(inF1) 446 + 447: 24(fvec2) CompositeExtract 445 0 + Store 442(r037) 447 + 449: 24(fvec2) Load 29(inF0) + 450: 24(fvec2) Fwidth 449 + Store 448(r038) 450 + 453: 24(fvec2) Load 29(inF0) + 454: 370(bvec2) IsInf 453 + Store 452(r039) 454 + 456: 24(fvec2) Load 29(inF0) + 457: 370(bvec2) IsNan 456 + Store 455(r040) 457 + 459: 24(fvec2) Load 29(inF0) + 460: 24(fvec2) Load 30(inF1) + 461: 24(fvec2) ExtInst 1(GLSL.std.450) 53(Ldexp) 459 460 + Store 458(r041) 461 + 463: 24(fvec2) Load 29(inF0) + 464: 24(fvec2) Load 30(inF1) + 465: 24(fvec2) Load 31(inF2) + 466: 24(fvec2) ExtInst 1(GLSL.std.450) 46(FMix) 463 464 465 + Store 462(r039a) 466 + 468: 24(fvec2) Load 29(inF0) + 469: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 468 + Store 467(r042) 469 + 471: 24(fvec2) Load 29(inF0) + 472: 24(fvec2) ExtInst 1(GLSL.std.450) 28(Log) 471 + Store 470(r043) 472 + 474: 24(fvec2) Load 29(inF0) + 475: 24(fvec2) ExtInst 1(GLSL.std.450) 30(Log2) 474 + 476: 24(fvec2) VectorTimesScalar 475 253 + Store 473(r044) 476 + 478: 24(fvec2) Load 29(inF0) + 479: 24(fvec2) ExtInst 1(GLSL.std.450) 30(Log2) 478 + Store 477(r045) 479 + 481: 24(fvec2) Load 29(inF0) + 482: 24(fvec2) Load 30(inF1) + 483: 24(fvec2) ExtInst 1(GLSL.std.450) 40(FMax) 481 482 + Store 480(r046) 483 + 485: 24(fvec2) Load 29(inF0) + 486: 24(fvec2) Load 30(inF1) + 487: 24(fvec2) ExtInst 1(GLSL.std.450) 37(FMin) 485 486 + Store 484(r047) 487 + 489: 24(fvec2) Load 29(inF0) + 490: 24(fvec2) ExtInst 1(GLSL.std.450) 69(Normalize) 489 + Store 488(r048) 490 + 492: 24(fvec2) Load 29(inF0) + 493: 24(fvec2) Load 30(inF1) + 494: 24(fvec2) ExtInst 1(GLSL.std.450) 26(Pow) 492 493 + Store 491(r049) 494 + 496: 24(fvec2) Load 29(inF0) + 497: 24(fvec2) ExtInst 1(GLSL.std.450) 11(Radians) 496 + Store 495(r050) 497 + 499: 24(fvec2) Load 29(inF0) + 500: 24(fvec2) CompositeConstruct 274 274 + 501: 24(fvec2) FDiv 500 499 + Store 498(r051) 501 + 503: 24(fvec2) Load 29(inF0) + 504: 24(fvec2) Load 30(inF1) + 505: 24(fvec2) ExtInst 1(GLSL.std.450) 71(Reflect) 503 504 + Store 502(r052) 505 + 507: 24(fvec2) Load 29(inF0) + 508: 24(fvec2) Load 30(inF1) + 510: 24(fvec2) ExtInst 1(GLSL.std.450) 72(Refract) 507 508 509 + Store 506(r053) 510 + 514: 26(ivec2) BitReverse 513 + Store 511(r054) 514 + 516: 24(fvec2) Load 29(inF0) + 517: 24(fvec2) ExtInst 1(GLSL.std.450) 2(RoundEven) 516 + Store 515(r055) 517 + 519: 24(fvec2) Load 29(inF0) + 520: 24(fvec2) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 519 + Store 518(r056) 520 + 522: 24(fvec2) Load 29(inF0) + 523: 24(fvec2) CompositeConstruct 165 165 + 524: 24(fvec2) CompositeConstruct 274 274 + 525: 24(fvec2) ExtInst 1(GLSL.std.450) 43(FClamp) 522 523 524 + Store 521(r057) 525 + 527: 24(fvec2) Load 29(inF0) + 528: 24(fvec2) ExtInst 1(GLSL.std.450) 6(FSign) 527 + Store 526(r058) 528 + 530: 24(fvec2) Load 29(inF0) + 531: 24(fvec2) ExtInst 1(GLSL.std.450) 13(Sin) 530 + Store 529(r059) 531 + 532: 24(fvec2) Load 29(inF0) + 533: 24(fvec2) ExtInst 1(GLSL.std.450) 13(Sin) 532 + Store 30(inF1) 533 + 534: 24(fvec2) Load 29(inF0) + 535: 24(fvec2) ExtInst 1(GLSL.std.450) 14(Cos) 534 + Store 31(inF2) 535 + 537: 24(fvec2) Load 29(inF0) + 538: 24(fvec2) ExtInst 1(GLSL.std.450) 19(Sinh) 537 + Store 536(r060) 538 + 540: 24(fvec2) Load 29(inF0) + 541: 24(fvec2) Load 30(inF1) + 542: 24(fvec2) Load 31(inF2) + 543: 24(fvec2) ExtInst 1(GLSL.std.450) 49(SmoothStep) 540 541 542 + Store 539(r061) 543 + 545: 24(fvec2) Load 29(inF0) + 546: 24(fvec2) ExtInst 1(GLSL.std.450) 31(Sqrt) 545 + Store 544(r062) 546 + 548: 24(fvec2) Load 29(inF0) + 549: 24(fvec2) Load 30(inF1) + 550: 24(fvec2) ExtInst 1(GLSL.std.450) 48(Step) 548 549 + Store 547(r063) 550 + 552: 24(fvec2) Load 29(inF0) + 553: 24(fvec2) ExtInst 1(GLSL.std.450) 15(Tan) 552 + Store 551(r064) 553 + 555: 24(fvec2) Load 29(inF0) + 556: 24(fvec2) ExtInst 1(GLSL.std.450) 21(Tanh) 555 + Store 554(r065) 556 + 558: 24(fvec2) Load 29(inF0) + 559: 24(fvec2) ExtInst 1(GLSL.std.450) 3(Trunc) 558 + Store 557(r066) 559 + ReturnValue 560 + FunctionEnd +46(PixelShaderFunction3(vf3;vf3;vf3;vu3;vu3;): 36(fvec3) Function None 40 + 41(inF0): 37(ptr) FunctionParameter + 42(inF1): 37(ptr) FunctionParameter + 43(inF2): 37(ptr) FunctionParameter + 44(inU0): 39(ptr) FunctionParameter + 45(inU1): 39(ptr) FunctionParameter + 47: Label + 563(r000): 122(ptr) Variable Function + 566(r001): 37(ptr) Variable Function + 569(r002): 37(ptr) Variable Function + 572(r003): 122(ptr) Variable Function + 575(r004): 37(ptr) Variable Function + 580(r005): 579(ptr) Variable Function + 583(r006): 39(ptr) Variable Function + 586(r007): 37(ptr) Variable Function + 589(r009): 37(ptr) Variable Function + 592(r010): 37(ptr) Variable Function + 596(r011): 37(ptr) Variable Function + 599(r012): 37(ptr) Variable Function + 612(r013): 37(ptr) Variable Function + 615(r014): 37(ptr) Variable Function + 618(r015): 39(ptr) Variable Function + 622(r016): 37(ptr) Variable Function + 626(r017): 37(ptr) Variable Function + 629(r018): 37(ptr) Variable Function + 632(r019): 37(ptr) Variable Function + 635(r020): 37(ptr) Variable Function + 638(r021): 37(ptr) Variable Function + 641(r022): 37(ptr) Variable Function + 644(r023): 37(ptr) Variable Function + 647(r024): 7(ptr) Variable Function + 651(r025): 7(ptr) Variable Function + 655(r029): 37(ptr) Variable Function + 658(r030): 37(ptr) Variable Function + 661(r031): 37(ptr) Variable Function + 666(r032): 39(ptr) Variable Function + 670(r033): 39(ptr) Variable Function + 672(r034): 37(ptr) Variable Function + 675(r036): 37(ptr) Variable Function + 679(r037): 37(ptr) Variable Function + 682(r038): 37(ptr) Variable Function + 688(r039): 37(ptr) Variable Function + 692(r040): 691(ptr) Variable Function + 695(r041): 691(ptr) Variable Function + 698(r042): 37(ptr) Variable Function + 702(r039a): 37(ptr) Variable Function + 707(r043): 7(ptr) Variable Function + 710(r044): 37(ptr) Variable Function + 713(r045): 37(ptr) Variable Function + 717(r046): 37(ptr) Variable Function + 720(r047): 37(ptr) Variable Function + 724(r048): 37(ptr) Variable Function + 728(r049): 37(ptr) Variable Function + 731(r050): 37(ptr) Variable Function + 735(r051): 37(ptr) Variable Function + 738(r052): 37(ptr) Variable Function + 742(r053): 37(ptr) Variable Function + 746(r054): 37(ptr) Variable Function + 750(r055): 39(ptr) Variable Function + 753(r056): 37(ptr) Variable Function + 756(r057): 37(ptr) Variable Function + 759(r058): 37(ptr) Variable Function + 764(r059): 37(ptr) Variable Function + 767(r060): 37(ptr) Variable Function + 774(r061): 37(ptr) Variable Function + 777(r062): 37(ptr) Variable Function + 782(r063): 37(ptr) Variable Function + 785(r064): 37(ptr) Variable Function + 789(r065): 37(ptr) Variable Function + 792(r066): 37(ptr) Variable Function + 795(r067): 37(ptr) Variable Function + 564: 36(fvec3) Load 41(inF0) + 565: 121(bool) All 564 + Store 563(r000) 565 + 567: 36(fvec3) Load 41(inF0) + 568: 36(fvec3) ExtInst 1(GLSL.std.450) 4(FAbs) 567 + Store 566(r001) 568 + 570: 36(fvec3) Load 41(inF0) + 571: 36(fvec3) ExtInst 1(GLSL.std.450) 17(Acos) 570 + Store 569(r002) 571 + 573: 36(fvec3) Load 41(inF0) + 574: 121(bool) Any 573 + Store 572(r003) 574 + 576: 36(fvec3) Load 41(inF0) + 577: 36(fvec3) ExtInst 1(GLSL.std.450) 16(Asin) 576 + Store 575(r004) 577 + 581: 36(fvec3) Load 41(inF0) + 582: 578(ivec3) Bitcast 581 + Store 580(r005) 582 + 584: 36(fvec3) Load 41(inF0) + 585: 38(ivec3) Bitcast 584 + Store 583(r006) 585 + 587: 38(ivec3) Load 44(inU0) + 588: 36(fvec3) Bitcast 587 + Store 586(r007) 588 + 590: 36(fvec3) Load 41(inF0) + 591: 36(fvec3) ExtInst 1(GLSL.std.450) 18(Atan) 590 + Store 589(r009) 591 + 593: 36(fvec3) Load 41(inF0) + 594: 36(fvec3) Load 42(inF1) + 595: 36(fvec3) ExtInst 1(GLSL.std.450) 25(Atan2) 593 594 + Store 592(r010) 595 + 597: 36(fvec3) Load 41(inF0) + 598: 36(fvec3) ExtInst 1(GLSL.std.450) 9(Ceil) 597 + Store 596(r011) 598 + 600: 36(fvec3) Load 41(inF0) + 601: 36(fvec3) Load 42(inF1) + 602: 36(fvec3) Load 43(inF2) + 603: 36(fvec3) ExtInst 1(GLSL.std.450) 43(FClamp) 600 601 602 + Store 599(r012) 603 + 604: 36(fvec3) Load 41(inF0) + 607: 606(bvec3) FOrdLessThan 604 605 + 608: 121(bool) Any 607 + SelectionMerge 610 None + BranchConditional 608 609 610 + 609: Label + Kill + 610: Label + 613: 36(fvec3) Load 41(inF0) + 614: 36(fvec3) ExtInst 1(GLSL.std.450) 14(Cos) 613 + Store 612(r013) 614 + 616: 36(fvec3) Load 41(inF0) + 617: 36(fvec3) ExtInst 1(GLSL.std.450) 20(Cosh) 616 + Store 615(r014) 617 + 621: 38(ivec3) BitCount 620 + Store 618(r015) 621 + 623: 36(fvec3) Load 41(inF0) + 624: 36(fvec3) Load 42(inF1) + 625: 36(fvec3) ExtInst 1(GLSL.std.450) 68(Cross) 623 624 + Store 622(r016) 625 + 627: 36(fvec3) Load 41(inF0) + 628: 36(fvec3) DPdx 627 + Store 626(r017) 628 + 630: 36(fvec3) Load 41(inF0) + 631: 36(fvec3) DPdxCoarse 630 + Store 629(r018) 631 + 633: 36(fvec3) Load 41(inF0) + 634: 36(fvec3) DPdxFine 633 + Store 632(r019) 634 + 636: 36(fvec3) Load 41(inF0) + 637: 36(fvec3) DPdy 636 + Store 635(r020) 637 + 639: 36(fvec3) Load 41(inF0) + 640: 36(fvec3) DPdyCoarse 639 + Store 638(r021) 640 + 642: 36(fvec3) Load 41(inF0) + 643: 36(fvec3) DPdyFine 642 + Store 641(r022) 643 + 645: 36(fvec3) Load 41(inF0) + 646: 36(fvec3) ExtInst 1(GLSL.std.450) 12(Degrees) 645 + Store 644(r023) 646 + 648: 36(fvec3) Load 41(inF0) + 649: 36(fvec3) Load 42(inF1) + 650: 6(float) ExtInst 1(GLSL.std.450) 67(Distance) 648 649 + Store 647(r024) 650 + 652: 36(fvec3) Load 41(inF0) + 653: 36(fvec3) Load 42(inF1) + 654: 6(float) Dot 652 653 + Store 651(r025) 654 + 656: 36(fvec3) Load 41(inF0) + 657: 36(fvec3) ExtInst 1(GLSL.std.450) 27(Exp) 656 + Store 655(r029) 657 + 659: 36(fvec3) Load 41(inF0) + 660: 36(fvec3) ExtInst 1(GLSL.std.450) 29(Exp2) 659 + Store 658(r030) 660 + 662: 36(fvec3) Load 41(inF0) + 663: 36(fvec3) Load 42(inF1) + 664: 36(fvec3) Load 43(inF2) + 665: 36(fvec3) ExtInst 1(GLSL.std.450) 70(FaceForward) 662 663 664 + Store 661(r031) 665 + 669: 38(ivec3) ExtInst 1(GLSL.std.450) 75(FindUMsb) 668 + Store 666(r032) 669 + 671: 38(ivec3) ExtInst 1(GLSL.std.450) 73(FindILsb) 668 + Store 670(r033) 671 + 673: 36(fvec3) Load 41(inF0) + 674: 36(fvec3) ExtInst 1(GLSL.std.450) 8(Floor) 673 + Store 672(r034) 674 + 676: 36(fvec3) Load 41(inF0) + 677: 36(fvec3) Load 42(inF1) + 678: 36(fvec3) FMod 676 677 + Store 675(r036) 678 + 680: 36(fvec3) Load 41(inF0) + 681: 36(fvec3) ExtInst 1(GLSL.std.450) 10(Fract) 680 + Store 679(r037) 681 + 683: 36(fvec3) Load 41(inF0) + 685:684(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 683 + 686: 578(ivec3) CompositeExtract 685 1 + Store 42(inF1) 686 + 687: 36(fvec3) CompositeExtract 685 0 + Store 682(r038) 687 + 689: 36(fvec3) Load 41(inF0) + 690: 36(fvec3) Fwidth 689 + Store 688(r039) 690 + 693: 36(fvec3) Load 41(inF0) + 694: 606(bvec3) IsInf 693 + Store 692(r040) 694 + 696: 36(fvec3) Load 41(inF0) + 697: 606(bvec3) IsNan 696 + Store 695(r041) 697 + 699: 36(fvec3) Load 41(inF0) + 700: 36(fvec3) Load 42(inF1) + 701: 36(fvec3) ExtInst 1(GLSL.std.450) 53(Ldexp) 699 700 + Store 698(r042) 701 + 703: 36(fvec3) Load 41(inF0) + 704: 36(fvec3) Load 42(inF1) + 705: 36(fvec3) Load 43(inF2) + 706: 36(fvec3) ExtInst 1(GLSL.std.450) 46(FMix) 703 704 705 + Store 702(r039a) 706 + 708: 36(fvec3) Load 41(inF0) + 709: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 708 + Store 707(r043) 709 + 711: 36(fvec3) Load 41(inF0) + 712: 36(fvec3) ExtInst 1(GLSL.std.450) 28(Log) 711 + Store 710(r044) 712 + 714: 36(fvec3) Load 41(inF0) + 715: 36(fvec3) ExtInst 1(GLSL.std.450) 30(Log2) 714 + 716: 36(fvec3) VectorTimesScalar 715 253 + Store 713(r045) 716 + 718: 36(fvec3) Load 41(inF0) + 719: 36(fvec3) ExtInst 1(GLSL.std.450) 30(Log2) 718 + Store 717(r046) 719 + 721: 36(fvec3) Load 41(inF0) + 722: 36(fvec3) Load 42(inF1) + 723: 36(fvec3) ExtInst 1(GLSL.std.450) 40(FMax) 721 722 + Store 720(r047) 723 + 725: 36(fvec3) Load 41(inF0) + 726: 36(fvec3) Load 42(inF1) + 727: 36(fvec3) ExtInst 1(GLSL.std.450) 37(FMin) 725 726 + Store 724(r048) 727 + 729: 36(fvec3) Load 41(inF0) + 730: 36(fvec3) ExtInst 1(GLSL.std.450) 69(Normalize) 729 + Store 728(r049) 730 + 732: 36(fvec3) Load 41(inF0) + 733: 36(fvec3) Load 42(inF1) + 734: 36(fvec3) ExtInst 1(GLSL.std.450) 26(Pow) 732 733 + Store 731(r050) 734 + 736: 36(fvec3) Load 41(inF0) + 737: 36(fvec3) ExtInst 1(GLSL.std.450) 11(Radians) 736 + Store 735(r051) 737 + 739: 36(fvec3) Load 41(inF0) + 740: 36(fvec3) CompositeConstruct 274 274 274 + 741: 36(fvec3) FDiv 740 739 + Store 738(r052) 741 + 743: 36(fvec3) Load 41(inF0) + 744: 36(fvec3) Load 42(inF1) + 745: 36(fvec3) ExtInst 1(GLSL.std.450) 71(Reflect) 743 744 + Store 742(r053) 745 + 747: 36(fvec3) Load 41(inF0) + 748: 36(fvec3) Load 42(inF1) + 749: 36(fvec3) ExtInst 1(GLSL.std.450) 72(Refract) 747 748 509 + Store 746(r054) 749 + 752: 38(ivec3) BitReverse 751 + Store 750(r055) 752 + 754: 36(fvec3) Load 41(inF0) + 755: 36(fvec3) ExtInst 1(GLSL.std.450) 2(RoundEven) 754 + Store 753(r056) 755 + 757: 36(fvec3) Load 41(inF0) + 758: 36(fvec3) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 757 + Store 756(r057) 758 + 760: 36(fvec3) Load 41(inF0) + 761: 36(fvec3) CompositeConstruct 165 165 165 + 762: 36(fvec3) CompositeConstruct 274 274 274 + 763: 36(fvec3) ExtInst 1(GLSL.std.450) 43(FClamp) 760 761 762 + Store 759(r058) 763 + 765: 36(fvec3) Load 41(inF0) + 766: 36(fvec3) ExtInst 1(GLSL.std.450) 6(FSign) 765 + Store 764(r059) 766 + 768: 36(fvec3) Load 41(inF0) + 769: 36(fvec3) ExtInst 1(GLSL.std.450) 13(Sin) 768 + Store 767(r060) 769 + 770: 36(fvec3) Load 41(inF0) + 771: 36(fvec3) ExtInst 1(GLSL.std.450) 13(Sin) 770 + Store 42(inF1) 771 + 772: 36(fvec3) Load 41(inF0) + 773: 36(fvec3) ExtInst 1(GLSL.std.450) 14(Cos) 772 + Store 43(inF2) 773 + 775: 36(fvec3) Load 41(inF0) + 776: 36(fvec3) ExtInst 1(GLSL.std.450) 19(Sinh) 775 + Store 774(r061) 776 + 778: 36(fvec3) Load 41(inF0) + 779: 36(fvec3) Load 42(inF1) + 780: 36(fvec3) Load 43(inF2) + 781: 36(fvec3) ExtInst 1(GLSL.std.450) 49(SmoothStep) 778 779 780 + Store 777(r062) 781 + 783: 36(fvec3) Load 41(inF0) + 784: 36(fvec3) ExtInst 1(GLSL.std.450) 31(Sqrt) 783 + Store 782(r063) 784 + 786: 36(fvec3) Load 41(inF0) + 787: 36(fvec3) Load 42(inF1) + 788: 36(fvec3) ExtInst 1(GLSL.std.450) 48(Step) 786 787 + Store 785(r064) 788 + 790: 36(fvec3) Load 41(inF0) + 791: 36(fvec3) ExtInst 1(GLSL.std.450) 15(Tan) 790 + Store 789(r065) 791 + 793: 36(fvec3) Load 41(inF0) + 794: 36(fvec3) ExtInst 1(GLSL.std.450) 21(Tanh) 793 + Store 792(r066) 794 + 796: 36(fvec3) Load 41(inF0) + 797: 36(fvec3) ExtInst 1(GLSL.std.450) 3(Trunc) 796 + Store 795(r067) 797 + ReturnValue 799 + FunctionEnd +54(PixelShaderFunction2x2(mf22;mf22;mf22;): 48 Function None 50 + 51(inF0): 49(ptr) FunctionParameter + 52(inF1): 49(ptr) FunctionParameter + 53(inF2): 49(ptr) FunctionParameter + 55: Label + 1056(r000): 122(ptr) Variable Function + 1059(r001): 49(ptr) Variable Function + 1064(r003): 122(ptr) Variable Function + 1067(r004): 49(ptr) Variable Function + 1070(r005): 49(ptr) Variable Function + 1073(r006): 49(ptr) Variable Function + 1077(r007): 49(ptr) Variable Function + 1088(r008): 49(ptr) Variable Function + 1093(r009): 49(ptr) Variable Function + 1096(r010): 49(ptr) Variable Function + 1099(r011): 49(ptr) Variable Function + 1102(r012): 49(ptr) Variable Function + 1105(r013): 49(ptr) Variable Function + 1108(r014): 49(ptr) Variable Function + 1111(r015): 49(ptr) Variable Function + 1114(r016): 49(ptr) Variable Function + 1117(r017): 49(ptr) Variable Function + 1120(r018): 7(ptr) Variable Function + 1123(r019): 49(ptr) Variable Function + 1126(R020): 49(ptr) Variable Function + 1129(r021): 49(ptr) Variable Function + 1132(r022): 49(ptr) Variable Function + 1142(r023): 49(ptr) Variable Function + 1145(r024): 49(ptr) Variable Function + 1151(r025): 49(ptr) Variable Function + 1154(r026): 49(ptr) Variable Function + 1158(r026a): 49(ptr) Variable Function + 1163(r027): 49(ptr) Variable Function + 1166(r028): 49(ptr) Variable Function + 1170(r029): 49(ptr) Variable Function + 1173(r030): 49(ptr) Variable Function + 1177(r031): 49(ptr) Variable Function + 1181(r032): 49(ptr) Variable Function + 1185(r033): 49(ptr) Variable Function + 1188(r034): 49(ptr) Variable Function + 1191(r035): 49(ptr) Variable Function + 1194(r036): 49(ptr) Variable Function + 1199(r037): 49(ptr) Variable Function + 1202(r038): 49(ptr) Variable Function + 1209(r039): 49(ptr) Variable Function + 1212(r049): 49(ptr) Variable Function + 1217(r041): 49(ptr) Variable Function + 1220(r042): 49(ptr) Variable Function + 1224(r043): 49(ptr) Variable Function + 1227(r044): 49(ptr) Variable Function + 1232(r046): 49(ptr) Variable Function + 1057: 48 Load 51(inF0) + 1058: 121(bool) All 1057 + Store 1056(r000) 1058 + 1060: 48 Load 51(inF0) + 1061: 48 ExtInst 1(GLSL.std.450) 4(FAbs) 1060 + Store 1059(r001) 1061 + 1062: 48 Load 51(inF0) + 1063: 48 ExtInst 1(GLSL.std.450) 17(Acos) 1062 + 1065: 48 Load 51(inF0) + 1066: 121(bool) Any 1065 + Store 1064(r003) 1066 + 1068: 48 Load 51(inF0) + 1069: 48 ExtInst 1(GLSL.std.450) 16(Asin) 1068 + Store 1067(r004) 1069 + 1071: 48 Load 51(inF0) + 1072: 48 ExtInst 1(GLSL.std.450) 18(Atan) 1071 + Store 1070(r005) 1072 + 1074: 48 Load 51(inF0) + 1075: 48 Load 52(inF1) + 1076: 48 ExtInst 1(GLSL.std.450) 25(Atan2) 1074 1075 + Store 1073(r006) 1076 + 1078: 48 Load 51(inF0) + 1079: 48 ExtInst 1(GLSL.std.450) 9(Ceil) 1078 + Store 1077(r007) 1079 + 1080: 48 Load 51(inF0) + 1083: 1082 FOrdLessThan 1080 1081 + 1084: 121(bool) Any 1083 + SelectionMerge 1086 None + BranchConditional 1084 1085 1086 + 1085: Label + Kill + 1086: Label + 1089: 48 Load 51(inF0) + 1090: 48 Load 52(inF1) + 1091: 48 Load 53(inF2) + 1092: 48 ExtInst 1(GLSL.std.450) 43(FClamp) 1089 1090 1091 + Store 1088(r008) 1092 + 1094: 48 Load 51(inF0) + 1095: 48 ExtInst 1(GLSL.std.450) 14(Cos) 1094 + Store 1093(r009) 1095 + 1097: 48 Load 51(inF0) + 1098: 48 ExtInst 1(GLSL.std.450) 20(Cosh) 1097 + Store 1096(r010) 1098 + 1100: 48 Load 51(inF0) + 1101: 48 DPdx 1100 + Store 1099(r011) 1101 + 1103: 48 Load 51(inF0) + 1104: 48 DPdxCoarse 1103 + Store 1102(r012) 1104 + 1106: 48 Load 51(inF0) + 1107: 48 DPdxFine 1106 + Store 1105(r013) 1107 + 1109: 48 Load 51(inF0) + 1110: 48 DPdy 1109 + Store 1108(r014) 1110 + 1112: 48 Load 51(inF0) + 1113: 48 DPdyCoarse 1112 + Store 1111(r015) 1113 + 1115: 48 Load 51(inF0) + 1116: 48 DPdyFine 1115 + Store 1114(r016) 1116 + 1118: 48 Load 51(inF0) + 1119: 48 ExtInst 1(GLSL.std.450) 12(Degrees) 1118 + Store 1117(r017) 1119 + 1121: 48 Load 51(inF0) + 1122: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 1121 + Store 1120(r018) 1122 + 1124: 48 Load 51(inF0) + 1125: 48 ExtInst 1(GLSL.std.450) 27(Exp) 1124 + Store 1123(r019) 1125 + 1127: 48 Load 51(inF0) + 1128: 48 ExtInst 1(GLSL.std.450) 29(Exp2) 1127 + Store 1126(R020) 1128 + 1130: 48 Load 51(inF0) + 1131: 48 ExtInst 1(GLSL.std.450) 8(Floor) 1130 + Store 1129(r021) 1131 + 1133: 48 Load 51(inF0) + 1134: 48 Load 52(inF1) + 1135: 24(fvec2) CompositeExtract 1133 0 + 1136: 24(fvec2) CompositeExtract 1134 0 + 1137: 24(fvec2) FMod 1135 1136 + 1138: 24(fvec2) CompositeExtract 1133 1 + 1139: 24(fvec2) CompositeExtract 1134 1 + 1140: 24(fvec2) FMod 1138 1139 + 1141: 48 CompositeConstruct 1137 1140 + Store 1132(r022) 1141 + 1143: 48 Load 51(inF0) + 1144: 48 ExtInst 1(GLSL.std.450) 10(Fract) 1143 + Store 1142(r023) 1144 + 1146: 48 Load 51(inF0) + 1148:1147(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 1146 + 1149: 342(ivec2) CompositeExtract 1148 1 + Store 52(inF1) 1149 + 1150: 48 CompositeExtract 1148 0 + Store 1145(r024) 1150 + 1152: 48 Load 51(inF0) + 1153: 48 Fwidth 1152 + Store 1151(r025) 1153 + 1155: 48 Load 51(inF0) + 1156: 48 Load 52(inF1) + 1157: 48 ExtInst 1(GLSL.std.450) 53(Ldexp) 1155 1156 + Store 1154(r026) 1157 + 1159: 48 Load 51(inF0) + 1160: 48 Load 52(inF1) + 1161: 48 Load 53(inF2) + 1162: 48 ExtInst 1(GLSL.std.450) 46(FMix) 1159 1160 1161 + Store 1158(r026a) 1162 + 1164: 48 Load 51(inF0) + 1165: 48 ExtInst 1(GLSL.std.450) 28(Log) 1164 + Store 1163(r027) 1165 + 1167: 48 Load 51(inF0) + 1168: 48 ExtInst 1(GLSL.std.450) 30(Log2) 1167 + 1169: 48 MatrixTimesScalar 1168 253 + Store 1166(r028) 1169 + 1171: 48 Load 51(inF0) + 1172: 48 ExtInst 1(GLSL.std.450) 30(Log2) 1171 + Store 1170(r029) 1172 + 1174: 48 Load 51(inF0) + 1175: 48 Load 52(inF1) + 1176: 48 ExtInst 1(GLSL.std.450) 40(FMax) 1174 1175 + Store 1173(r030) 1176 + 1178: 48 Load 51(inF0) + 1179: 48 Load 52(inF1) + 1180: 48 ExtInst 1(GLSL.std.450) 37(FMin) 1178 1179 + Store 1177(r031) 1180 + 1182: 48 Load 51(inF0) + 1183: 48 Load 52(inF1) + 1184: 48 ExtInst 1(GLSL.std.450) 26(Pow) 1182 1183 + Store 1181(r032) 1184 + 1186: 48 Load 51(inF0) + 1187: 48 ExtInst 1(GLSL.std.450) 11(Radians) 1186 + Store 1185(r033) 1187 + 1189: 48 Load 51(inF0) + 1190: 48 ExtInst 1(GLSL.std.450) 2(RoundEven) 1189 + Store 1188(r034) 1190 + 1192: 48 Load 51(inF0) + 1193: 48 ExtInst 1(GLSL.std.450) 32(InverseSqrt) 1192 + Store 1191(r035) 1193 + 1195: 48 Load 51(inF0) + 1196: 24(fvec2) CompositeConstruct 165 165 + 1197: 24(fvec2) CompositeConstruct 274 274 + 1198: 48 ExtInst 1(GLSL.std.450) 43(FClamp) 1195 1196 1197 + Store 1194(r036) 1198 + 1200: 48 Load 51(inF0) + 1201: 48 ExtInst 1(GLSL.std.450) 6(FSign) 1200 + Store 1199(r037) 1201 + 1203: 48 Load 51(inF0) + 1204: 48 ExtInst 1(GLSL.std.450) 13(Sin) 1203 + Store 1202(r038) 1204 + 1205: 48 Load 51(inF0) + 1206: 48 ExtInst 1(GLSL.std.450) 13(Sin) 1205 + Store 52(inF1) 1206 + 1207: 48 Load 51(inF0) + 1208: 48 ExtInst 1(GLSL.std.450) 14(Cos) 1207 + Store 53(inF2) 1208 + 1210: 48 Load 51(inF0) + 1211: 48 ExtInst 1(GLSL.std.450) 19(Sinh) 1210 + Store 1209(r039) 1211 + 1213: 48 Load 51(inF0) + 1214: 48 Load 52(inF1) + 1215: 48 Load 53(inF2) + 1216: 48 ExtInst 1(GLSL.std.450) 49(SmoothStep) 1213 1214 1215 + Store 1212(r049) 1216 + 1218: 48 Load 51(inF0) + 1219: 48 ExtInst 1(GLSL.std.450) 31(Sqrt) 1218 + Store 1217(r041) 1219 + 1221: 48 Load 51(inF0) + 1222: 48 Load 52(inF1) + 1223: 48 ExtInst 1(GLSL.std.450) 48(Step) 1221 1222 + Store 1220(r042) 1223 + 1225: 48 Load 51(inF0) + 1226: 48 ExtInst 1(GLSL.std.450) 15(Tan) 1225 + Store 1224(r043) 1226 + 1228: 48 Load 51(inF0) + 1229: 48 ExtInst 1(GLSL.std.450) 21(Tanh) 1228 + Store 1227(r044) 1229 + 1230: 48 Load 51(inF0) + 1231: 48 Transpose 1230 + 1233: 48 Load 51(inF0) + 1234: 48 ExtInst 1(GLSL.std.450) 3(Trunc) 1233 + Store 1232(r046) 1234 + ReturnValue 1236 + FunctionEnd +62(PixelShaderFunction3x3(mf33;mf33;mf33;): 56 Function None 58 + 59(inF0): 57(ptr) FunctionParameter + 60(inF1): 57(ptr) FunctionParameter + 61(inF2): 57(ptr) FunctionParameter + 63: Label + 1239(r000): 122(ptr) Variable Function + 1242(r001): 57(ptr) Variable Function + 1247(r003): 122(ptr) Variable Function + 1250(r004): 57(ptr) Variable Function + 1253(r005): 57(ptr) Variable Function + 1256(r006): 57(ptr) Variable Function + 1260(r007): 57(ptr) Variable Function + 1271(r008): 57(ptr) Variable Function + 1276(r009): 57(ptr) Variable Function + 1279(r010): 57(ptr) Variable Function + 1282(r011): 57(ptr) Variable Function + 1285(r012): 57(ptr) Variable Function + 1288(r013): 57(ptr) Variable Function + 1291(r014): 57(ptr) Variable Function + 1294(r015): 57(ptr) Variable Function + 1297(r016): 57(ptr) Variable Function + 1300(r017): 57(ptr) Variable Function + 1303(r018): 7(ptr) Variable Function + 1306(r019): 57(ptr) Variable Function + 1309(R020): 57(ptr) Variable Function + 1312(r021): 57(ptr) Variable Function + 1315(r022): 57(ptr) Variable Function + 1328(r023): 57(ptr) Variable Function + 1331(r024): 57(ptr) Variable Function + 1337(r025): 57(ptr) Variable Function + 1340(r026): 57(ptr) Variable Function + 1344(r026a): 57(ptr) Variable Function + 1349(r027): 57(ptr) Variable Function + 1352(r028): 57(ptr) Variable Function + 1356(r029): 57(ptr) Variable Function + 1359(r030): 57(ptr) Variable Function + 1363(r031): 57(ptr) Variable Function + 1367(r032): 57(ptr) Variable Function + 1371(r033): 57(ptr) Variable Function + 1374(r034): 57(ptr) Variable Function + 1377(r035): 57(ptr) Variable Function + 1380(r036): 57(ptr) Variable Function + 1385(r037): 57(ptr) Variable Function + 1388(r038): 57(ptr) Variable Function + 1395(r039): 57(ptr) Variable Function + 1398(r049): 57(ptr) Variable Function + 1403(r041): 57(ptr) Variable Function + 1406(r042): 57(ptr) Variable Function + 1410(r043): 57(ptr) Variable Function + 1413(r044): 57(ptr) Variable Function + 1418(r046): 57(ptr) Variable Function + 1240: 56 Load 59(inF0) + 1241: 121(bool) All 1240 + Store 1239(r000) 1241 + 1243: 56 Load 59(inF0) + 1244: 56 ExtInst 1(GLSL.std.450) 4(FAbs) 1243 + Store 1242(r001) 1244 + 1245: 56 Load 59(inF0) + 1246: 56 ExtInst 1(GLSL.std.450) 17(Acos) 1245 + 1248: 56 Load 59(inF0) + 1249: 121(bool) Any 1248 + Store 1247(r003) 1249 + 1251: 56 Load 59(inF0) + 1252: 56 ExtInst 1(GLSL.std.450) 16(Asin) 1251 + Store 1250(r004) 1252 + 1254: 56 Load 59(inF0) + 1255: 56 ExtInst 1(GLSL.std.450) 18(Atan) 1254 + Store 1253(r005) 1255 + 1257: 56 Load 59(inF0) + 1258: 56 Load 60(inF1) + 1259: 56 ExtInst 1(GLSL.std.450) 25(Atan2) 1257 1258 + Store 1256(r006) 1259 + 1261: 56 Load 59(inF0) + 1262: 56 ExtInst 1(GLSL.std.450) 9(Ceil) 1261 + Store 1260(r007) 1262 + 1263: 56 Load 59(inF0) + 1266: 1265 FOrdLessThan 1263 1264 + 1267: 121(bool) Any 1266 + SelectionMerge 1269 None + BranchConditional 1267 1268 1269 + 1268: Label + Kill + 1269: Label + 1272: 56 Load 59(inF0) + 1273: 56 Load 60(inF1) + 1274: 56 Load 61(inF2) + 1275: 56 ExtInst 1(GLSL.std.450) 43(FClamp) 1272 1273 1274 + Store 1271(r008) 1275 + 1277: 56 Load 59(inF0) + 1278: 56 ExtInst 1(GLSL.std.450) 14(Cos) 1277 + Store 1276(r009) 1278 + 1280: 56 Load 59(inF0) + 1281: 56 ExtInst 1(GLSL.std.450) 20(Cosh) 1280 + Store 1279(r010) 1281 + 1283: 56 Load 59(inF0) + 1284: 56 DPdx 1283 + Store 1282(r011) 1284 + 1286: 56 Load 59(inF0) + 1287: 56 DPdxCoarse 1286 + Store 1285(r012) 1287 + 1289: 56 Load 59(inF0) + 1290: 56 DPdxFine 1289 + Store 1288(r013) 1290 + 1292: 56 Load 59(inF0) + 1293: 56 DPdy 1292 + Store 1291(r014) 1293 + 1295: 56 Load 59(inF0) + 1296: 56 DPdyCoarse 1295 + Store 1294(r015) 1296 + 1298: 56 Load 59(inF0) + 1299: 56 DPdyFine 1298 + Store 1297(r016) 1299 + 1301: 56 Load 59(inF0) + 1302: 56 ExtInst 1(GLSL.std.450) 12(Degrees) 1301 + Store 1300(r017) 1302 + 1304: 56 Load 59(inF0) + 1305: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 1304 + Store 1303(r018) 1305 + 1307: 56 Load 59(inF0) + 1308: 56 ExtInst 1(GLSL.std.450) 27(Exp) 1307 + Store 1306(r019) 1308 + 1310: 56 Load 59(inF0) + 1311: 56 ExtInst 1(GLSL.std.450) 29(Exp2) 1310 + Store 1309(R020) 1311 + 1313: 56 Load 59(inF0) + 1314: 56 ExtInst 1(GLSL.std.450) 8(Floor) 1313 + Store 1312(r021) 1314 + 1316: 56 Load 59(inF0) + 1317: 56 Load 60(inF1) + 1318: 36(fvec3) CompositeExtract 1316 0 + 1319: 36(fvec3) CompositeExtract 1317 0 + 1320: 36(fvec3) FMod 1318 1319 + 1321: 36(fvec3) CompositeExtract 1316 1 + 1322: 36(fvec3) CompositeExtract 1317 1 + 1323: 36(fvec3) FMod 1321 1322 + 1324: 36(fvec3) CompositeExtract 1316 2 + 1325: 36(fvec3) CompositeExtract 1317 2 + 1326: 36(fvec3) FMod 1324 1325 + 1327: 56 CompositeConstruct 1320 1323 1326 + Store 1315(r022) 1327 + 1329: 56 Load 59(inF0) + 1330: 56 ExtInst 1(GLSL.std.450) 10(Fract) 1329 + Store 1328(r023) 1330 + 1332: 56 Load 59(inF0) + 1334:1333(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 1332 + 1335: 578(ivec3) CompositeExtract 1334 1 + Store 60(inF1) 1335 + 1336: 56 CompositeExtract 1334 0 + Store 1331(r024) 1336 + 1338: 56 Load 59(inF0) + 1339: 56 Fwidth 1338 + Store 1337(r025) 1339 + 1341: 56 Load 59(inF0) + 1342: 56 Load 60(inF1) + 1343: 56 ExtInst 1(GLSL.std.450) 53(Ldexp) 1341 1342 + Store 1340(r026) 1343 + 1345: 56 Load 59(inF0) + 1346: 56 Load 60(inF1) + 1347: 56 Load 61(inF2) + 1348: 56 ExtInst 1(GLSL.std.450) 46(FMix) 1345 1346 1347 + Store 1344(r026a) 1348 + 1350: 56 Load 59(inF0) + 1351: 56 ExtInst 1(GLSL.std.450) 28(Log) 1350 + Store 1349(r027) 1351 + 1353: 56 Load 59(inF0) + 1354: 56 ExtInst 1(GLSL.std.450) 30(Log2) 1353 + 1355: 56 MatrixTimesScalar 1354 253 + Store 1352(r028) 1355 + 1357: 56 Load 59(inF0) + 1358: 56 ExtInst 1(GLSL.std.450) 30(Log2) 1357 + Store 1356(r029) 1358 + 1360: 56 Load 59(inF0) + 1361: 56 Load 60(inF1) + 1362: 56 ExtInst 1(GLSL.std.450) 40(FMax) 1360 1361 + Store 1359(r030) 1362 + 1364: 56 Load 59(inF0) + 1365: 56 Load 60(inF1) + 1366: 56 ExtInst 1(GLSL.std.450) 37(FMin) 1364 1365 + Store 1363(r031) 1366 + 1368: 56 Load 59(inF0) + 1369: 56 Load 60(inF1) + 1370: 56 ExtInst 1(GLSL.std.450) 26(Pow) 1368 1369 + Store 1367(r032) 1370 + 1372: 56 Load 59(inF0) + 1373: 56 ExtInst 1(GLSL.std.450) 11(Radians) 1372 + Store 1371(r033) 1373 + 1375: 56 Load 59(inF0) + 1376: 56 ExtInst 1(GLSL.std.450) 2(RoundEven) 1375 + Store 1374(r034) 1376 + 1378: 56 Load 59(inF0) + 1379: 56 ExtInst 1(GLSL.std.450) 32(InverseSqrt) 1378 + Store 1377(r035) 1379 + 1381: 56 Load 59(inF0) + 1382: 36(fvec3) CompositeConstruct 165 165 165 + 1383: 36(fvec3) CompositeConstruct 274 274 274 + 1384: 56 ExtInst 1(GLSL.std.450) 43(FClamp) 1381 1382 1383 + Store 1380(r036) 1384 + 1386: 56 Load 59(inF0) + 1387: 56 ExtInst 1(GLSL.std.450) 6(FSign) 1386 + Store 1385(r037) 1387 + 1389: 56 Load 59(inF0) + 1390: 56 ExtInst 1(GLSL.std.450) 13(Sin) 1389 + Store 1388(r038) 1390 + 1391: 56 Load 59(inF0) + 1392: 56 ExtInst 1(GLSL.std.450) 13(Sin) 1391 + Store 60(inF1) 1392 + 1393: 56 Load 59(inF0) + 1394: 56 ExtInst 1(GLSL.std.450) 14(Cos) 1393 + Store 61(inF2) 1394 + 1396: 56 Load 59(inF0) + 1397: 56 ExtInst 1(GLSL.std.450) 19(Sinh) 1396 + Store 1395(r039) 1397 + 1399: 56 Load 59(inF0) + 1400: 56 Load 60(inF1) + 1401: 56 Load 61(inF2) + 1402: 56 ExtInst 1(GLSL.std.450) 49(SmoothStep) 1399 1400 1401 + Store 1398(r049) 1402 + 1404: 56 Load 59(inF0) + 1405: 56 ExtInst 1(GLSL.std.450) 31(Sqrt) 1404 + Store 1403(r041) 1405 + 1407: 56 Load 59(inF0) + 1408: 56 Load 60(inF1) + 1409: 56 ExtInst 1(GLSL.std.450) 48(Step) 1407 1408 + Store 1406(r042) 1409 + 1411: 56 Load 59(inF0) + 1412: 56 ExtInst 1(GLSL.std.450) 15(Tan) 1411 + Store 1410(r043) 1412 + 1414: 56 Load 59(inF0) + 1415: 56 ExtInst 1(GLSL.std.450) 21(Tanh) 1414 + Store 1413(r044) 1415 + 1416: 56 Load 59(inF0) + 1417: 56 Transpose 1416 + 1419: 56 Load 59(inF0) + 1420: 56 ExtInst 1(GLSL.std.450) 3(Trunc) 1419 + Store 1418(r046) 1420 + ReturnValue 1422 + FunctionEnd +71(PixelShaderFunction4x4(mf44;mf44;mf44;): 65 Function None 67 + 68(inF0): 66(ptr) FunctionParameter + 69(inF1): 66(ptr) FunctionParameter + 70(inF2): 66(ptr) FunctionParameter + 72: Label + 1425(r000): 122(ptr) Variable Function + 1428(r001): 66(ptr) Variable Function + 1433(r003): 122(ptr) Variable Function + 1436(r004): 66(ptr) Variable Function + 1439(r005): 66(ptr) Variable Function + 1442(r006): 66(ptr) Variable Function + 1446(r007): 66(ptr) Variable Function + 1457(r008): 66(ptr) Variable Function + 1462(r009): 66(ptr) Variable Function + 1465(r010): 66(ptr) Variable Function + 1468(r011): 66(ptr) Variable Function + 1471(r012): 66(ptr) Variable Function + 1474(r013): 66(ptr) Variable Function + 1477(r014): 66(ptr) Variable Function + 1480(r015): 66(ptr) Variable Function + 1483(r016): 66(ptr) Variable Function + 1486(r017): 66(ptr) Variable Function + 1489(r018): 7(ptr) Variable Function + 1492(r019): 66(ptr) Variable Function + 1495(R020): 66(ptr) Variable Function + 1498(r021): 66(ptr) Variable Function + 1501(r022): 66(ptr) Variable Function + 1517(r023): 66(ptr) Variable Function + 1520(r024): 66(ptr) Variable Function + 1526(r025): 66(ptr) Variable Function + 1529(r026): 66(ptr) Variable Function + 1533(r026a): 66(ptr) Variable Function + 1538(r027): 66(ptr) Variable Function + 1541(r028): 66(ptr) Variable Function + 1545(r029): 66(ptr) Variable Function + 1548(r030): 66(ptr) Variable Function + 1552(r031): 66(ptr) Variable Function + 1556(r032): 66(ptr) Variable Function + 1560(r033): 66(ptr) Variable Function + 1563(r034): 66(ptr) Variable Function + 1566(r035): 66(ptr) Variable Function + 1569(r036): 66(ptr) Variable Function + 1574(r037): 66(ptr) Variable Function + 1577(r038): 66(ptr) Variable Function + 1584(r039): 66(ptr) Variable Function + 1587(r049): 66(ptr) Variable Function + 1592(r041): 66(ptr) Variable Function + 1595(r042): 66(ptr) Variable Function + 1599(r043): 66(ptr) Variable Function + 1602(r044): 66(ptr) Variable Function + 1607(r046): 66(ptr) Variable Function + 1426: 65 Load 68(inF0) + 1427: 121(bool) All 1426 + Store 1425(r000) 1427 + 1429: 65 Load 68(inF0) + 1430: 65 ExtInst 1(GLSL.std.450) 4(FAbs) 1429 + Store 1428(r001) 1430 + 1431: 65 Load 68(inF0) + 1432: 65 ExtInst 1(GLSL.std.450) 17(Acos) 1431 + 1434: 65 Load 68(inF0) + 1435: 121(bool) Any 1434 + Store 1433(r003) 1435 + 1437: 65 Load 68(inF0) + 1438: 65 ExtInst 1(GLSL.std.450) 16(Asin) 1437 + Store 1436(r004) 1438 + 1440: 65 Load 68(inF0) + 1441: 65 ExtInst 1(GLSL.std.450) 18(Atan) 1440 + Store 1439(r005) 1441 + 1443: 65 Load 68(inF0) + 1444: 65 Load 69(inF1) + 1445: 65 ExtInst 1(GLSL.std.450) 25(Atan2) 1443 1444 + Store 1442(r006) 1445 + 1447: 65 Load 68(inF0) + 1448: 65 ExtInst 1(GLSL.std.450) 9(Ceil) 1447 + Store 1446(r007) 1448 + 1449: 65 Load 68(inF0) + 1452: 1451 FOrdLessThan 1449 1450 + 1453: 121(bool) Any 1452 + SelectionMerge 1455 None + BranchConditional 1453 1454 1455 + 1454: Label + Kill + 1455: Label + 1458: 65 Load 68(inF0) + 1459: 65 Load 69(inF1) + 1460: 65 Load 70(inF2) + 1461: 65 ExtInst 1(GLSL.std.450) 43(FClamp) 1458 1459 1460 + Store 1457(r008) 1461 + 1463: 65 Load 68(inF0) + 1464: 65 ExtInst 1(GLSL.std.450) 14(Cos) 1463 + Store 1462(r009) 1464 + 1466: 65 Load 68(inF0) + 1467: 65 ExtInst 1(GLSL.std.450) 20(Cosh) 1466 + Store 1465(r010) 1467 + 1469: 65 Load 68(inF0) + 1470: 65 DPdx 1469 + Store 1468(r011) 1470 + 1472: 65 Load 68(inF0) + 1473: 65 DPdxCoarse 1472 + Store 1471(r012) 1473 + 1475: 65 Load 68(inF0) + 1476: 65 DPdxFine 1475 + Store 1474(r013) 1476 + 1478: 65 Load 68(inF0) + 1479: 65 DPdy 1478 + Store 1477(r014) 1479 + 1481: 65 Load 68(inF0) + 1482: 65 DPdyCoarse 1481 + Store 1480(r015) 1482 + 1484: 65 Load 68(inF0) + 1485: 65 DPdyFine 1484 + Store 1483(r016) 1485 + 1487: 65 Load 68(inF0) + 1488: 65 ExtInst 1(GLSL.std.450) 12(Degrees) 1487 + Store 1486(r017) 1488 + 1490: 65 Load 68(inF0) + 1491: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 1490 + Store 1489(r018) 1491 + 1493: 65 Load 68(inF0) + 1494: 65 ExtInst 1(GLSL.std.450) 27(Exp) 1493 + Store 1492(r019) 1494 + 1496: 65 Load 68(inF0) + 1497: 65 ExtInst 1(GLSL.std.450) 29(Exp2) 1496 + Store 1495(R020) 1497 + 1499: 65 Load 68(inF0) + 1500: 65 ExtInst 1(GLSL.std.450) 8(Floor) 1499 + Store 1498(r021) 1500 + 1502: 65 Load 68(inF0) + 1503: 65 Load 69(inF1) + 1504: 64(fvec4) CompositeExtract 1502 0 + 1505: 64(fvec4) CompositeExtract 1503 0 + 1506: 64(fvec4) FMod 1504 1505 + 1507: 64(fvec4) CompositeExtract 1502 1 + 1508: 64(fvec4) CompositeExtract 1503 1 + 1509: 64(fvec4) FMod 1507 1508 + 1510: 64(fvec4) CompositeExtract 1502 2 + 1511: 64(fvec4) CompositeExtract 1503 2 + 1512: 64(fvec4) FMod 1510 1511 + 1513: 64(fvec4) CompositeExtract 1502 3 + 1514: 64(fvec4) CompositeExtract 1503 3 + 1515: 64(fvec4) FMod 1513 1514 + 1516: 65 CompositeConstruct 1506 1509 1512 1515 + Store 1501(r022) 1516 + 1518: 65 Load 68(inF0) + 1519: 65 ExtInst 1(GLSL.std.450) 10(Fract) 1518 + Store 1517(r023) 1519 + 1521: 65 Load 68(inF0) + 1523:1522(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 1521 + 1524: 819(ivec4) CompositeExtract 1523 1 + Store 69(inF1) 1524 + 1525: 65 CompositeExtract 1523 0 + Store 1520(r024) 1525 + 1527: 65 Load 68(inF0) + 1528: 65 Fwidth 1527 + Store 1526(r025) 1528 + 1530: 65 Load 68(inF0) + 1531: 65 Load 69(inF1) + 1532: 65 ExtInst 1(GLSL.std.450) 53(Ldexp) 1530 1531 + Store 1529(r026) 1532 + 1534: 65 Load 68(inF0) + 1535: 65 Load 69(inF1) + 1536: 65 Load 70(inF2) + 1537: 65 ExtInst 1(GLSL.std.450) 46(FMix) 1534 1535 1536 + Store 1533(r026a) 1537 + 1539: 65 Load 68(inF0) + 1540: 65 ExtInst 1(GLSL.std.450) 28(Log) 1539 + Store 1538(r027) 1540 + 1542: 65 Load 68(inF0) + 1543: 65 ExtInst 1(GLSL.std.450) 30(Log2) 1542 + 1544: 65 MatrixTimesScalar 1543 253 + Store 1541(r028) 1544 + 1546: 65 Load 68(inF0) + 1547: 65 ExtInst 1(GLSL.std.450) 30(Log2) 1546 + Store 1545(r029) 1547 + 1549: 65 Load 68(inF0) + 1550: 65 Load 69(inF1) + 1551: 65 ExtInst 1(GLSL.std.450) 40(FMax) 1549 1550 + Store 1548(r030) 1551 + 1553: 65 Load 68(inF0) + 1554: 65 Load 69(inF1) + 1555: 65 ExtInst 1(GLSL.std.450) 37(FMin) 1553 1554 + Store 1552(r031) 1555 + 1557: 65 Load 68(inF0) + 1558: 65 Load 69(inF1) + 1559: 65 ExtInst 1(GLSL.std.450) 26(Pow) 1557 1558 + Store 1556(r032) 1559 + 1561: 65 Load 68(inF0) + 1562: 65 ExtInst 1(GLSL.std.450) 11(Radians) 1561 + Store 1560(r033) 1562 + 1564: 65 Load 68(inF0) + 1565: 65 ExtInst 1(GLSL.std.450) 2(RoundEven) 1564 + Store 1563(r034) 1565 + 1567: 65 Load 68(inF0) + 1568: 65 ExtInst 1(GLSL.std.450) 32(InverseSqrt) 1567 + Store 1566(r035) 1568 + 1570: 65 Load 68(inF0) + 1571: 64(fvec4) CompositeConstruct 165 165 165 165 + 1572: 64(fvec4) CompositeConstruct 274 274 274 274 + 1573: 65 ExtInst 1(GLSL.std.450) 43(FClamp) 1570 1571 1572 + Store 1569(r036) 1573 + 1575: 65 Load 68(inF0) + 1576: 65 ExtInst 1(GLSL.std.450) 6(FSign) 1575 + Store 1574(r037) 1576 + 1578: 65 Load 68(inF0) + 1579: 65 ExtInst 1(GLSL.std.450) 13(Sin) 1578 + Store 1577(r038) 1579 + 1580: 65 Load 68(inF0) + 1581: 65 ExtInst 1(GLSL.std.450) 13(Sin) 1580 + Store 69(inF1) 1581 + 1582: 65 Load 68(inF0) + 1583: 65 ExtInst 1(GLSL.std.450) 14(Cos) 1582 + Store 70(inF2) 1583 + 1585: 65 Load 68(inF0) + 1586: 65 ExtInst 1(GLSL.std.450) 19(Sinh) 1585 + Store 1584(r039) 1586 + 1588: 65 Load 68(inF0) + 1589: 65 Load 69(inF1) + 1590: 65 Load 70(inF2) + 1591: 65 ExtInst 1(GLSL.std.450) 49(SmoothStep) 1588 1589 1590 + Store 1587(r049) 1591 + 1593: 65 Load 68(inF0) + 1594: 65 ExtInst 1(GLSL.std.450) 31(Sqrt) 1593 + Store 1592(r041) 1594 + 1596: 65 Load 68(inF0) + 1597: 65 Load 69(inF1) + 1598: 65 ExtInst 1(GLSL.std.450) 48(Step) 1596 1597 + Store 1595(r042) 1598 + 1600: 65 Load 68(inF0) + 1601: 65 ExtInst 1(GLSL.std.450) 15(Tan) 1600 + Store 1599(r043) 1601 + 1603: 65 Load 68(inF0) + 1604: 65 ExtInst 1(GLSL.std.450) 21(Tanh) 1603 + Store 1602(r044) 1604 + 1605: 65 Load 68(inF0) + 1606: 65 Transpose 1605 + 1608: 65 Load 68(inF0) + 1609: 65 ExtInst 1(GLSL.std.450) 3(Trunc) 1608 + Store 1607(r046) 1609 + ReturnValue 1611 + FunctionEnd +80(TestGenMul2(f1;f1;vf2;vf2;mf22;mf22;): 2 Function None 73 + 74(inF0): 7(ptr) FunctionParameter + 75(inF1): 7(ptr) FunctionParameter + 76(inFV0): 25(ptr) FunctionParameter + 77(inFV1): 25(ptr) FunctionParameter + 78(inFM0): 49(ptr) FunctionParameter + 79(inFM1): 49(ptr) FunctionParameter + 81: Label + 1614(r0): 7(ptr) Variable Function + 1618(r1): 25(ptr) Variable Function + 1622(r2): 25(ptr) Variable Function + 1626(r3): 7(ptr) Variable Function + 1630(r4): 25(ptr) Variable Function + 1634(r5): 25(ptr) Variable Function + 1638(r6): 49(ptr) Variable Function + 1642(r7): 49(ptr) Variable Function + 1646(r8): 49(ptr) Variable Function + 1615: 6(float) Load 74(inF0) + 1616: 6(float) Load 75(inF1) + 1617: 6(float) FMul 1615 1616 + Store 1614(r0) 1617 + 1619: 24(fvec2) Load 76(inFV0) + 1620: 6(float) Load 74(inF0) + 1621: 24(fvec2) VectorTimesScalar 1619 1620 + Store 1618(r1) 1621 + 1623: 6(float) Load 74(inF0) + 1624: 24(fvec2) Load 76(inFV0) + 1625: 24(fvec2) VectorTimesScalar 1624 1623 + Store 1622(r2) 1625 + 1627: 24(fvec2) Load 76(inFV0) + 1628: 24(fvec2) Load 77(inFV1) + 1629: 6(float) Dot 1627 1628 + Store 1626(r3) 1629 + 1631: 48 Load 78(inFM0) + 1632: 24(fvec2) Load 76(inFV0) + 1633: 24(fvec2) MatrixTimesVector 1631 1632 + Store 1630(r4) 1633 + 1635: 24(fvec2) Load 76(inFV0) + 1636: 48 Load 78(inFM0) + 1637: 24(fvec2) VectorTimesMatrix 1635 1636 + Store 1634(r5) 1637 + 1639: 48 Load 78(inFM0) + 1640: 6(float) Load 74(inF0) + 1641: 48 MatrixTimesScalar 1639 1640 + Store 1638(r6) 1641 + 1643: 6(float) Load 74(inF0) + 1644: 48 Load 78(inFM0) + 1645: 48 MatrixTimesScalar 1644 1643 + Store 1642(r7) 1645 + 1647: 48 Load 78(inFM0) + 1648: 48 Load 79(inFM1) + 1649: 48 MatrixTimesMatrix 1647 1648 + Store 1646(r8) 1649 Return FunctionEnd -32(TestGenMul(f1;f1;vf3;vf3;mf33;mf33;): 2 Function None 25 - 26(inF0): 7(ptr) FunctionParameter - 27(inF1): 7(ptr) FunctionParameter - 28(inFV0): 22(ptr) FunctionParameter - 29(inFV1): 22(ptr) FunctionParameter - 30(inFM0): 24(ptr) FunctionParameter - 31(inFM1): 24(ptr) FunctionParameter - 33: Label - 1177(r0): 7(ptr) Variable Function - 1181(r1): 22(ptr) Variable Function - 1185(r2): 22(ptr) Variable Function - 1189(r3): 7(ptr) Variable Function - 1193(r4): 22(ptr) Variable Function - 1197(r5): 22(ptr) Variable Function - 1201(r6): 24(ptr) Variable Function - 1205(r7): 24(ptr) Variable Function - 1209(r8): 24(ptr) Variable Function - 1178: 6(float) Load 26(inF0) - 1179: 6(float) Load 27(inF1) - 1180: 6(float) FMul 1178 1179 - Store 1177(r0) 1180 - 1182: 21(fvec3) Load 28(inFV0) - 1183: 6(float) Load 26(inF0) - 1184: 21(fvec3) VectorTimesScalar 1182 1183 - Store 1181(r1) 1184 - 1186: 6(float) Load 26(inF0) - 1187: 21(fvec3) Load 28(inFV0) - 1188: 21(fvec3) VectorTimesScalar 1187 1186 - Store 1185(r2) 1188 - 1190: 21(fvec3) Load 28(inFV0) - 1191: 21(fvec3) Load 29(inFV1) - 1192: 6(float) Dot 1190 1191 - Store 1189(r3) 1192 - 1194: 23 Load 30(inFM0) - 1195: 21(fvec3) Load 28(inFV0) - 1196: 21(fvec3) MatrixTimesVector 1194 1195 - Store 1193(r4) 1196 - 1198: 21(fvec3) Load 28(inFV0) - 1199: 23 Load 30(inFM0) - 1200: 21(fvec3) VectorTimesMatrix 1198 1199 - Store 1197(r5) 1200 - 1202: 23 Load 30(inFM0) - 1203: 6(float) Load 26(inF0) - 1204: 23 MatrixTimesScalar 1202 1203 - Store 1201(r6) 1204 - 1206: 6(float) Load 26(inF0) - 1207: 23 Load 30(inFM0) - 1208: 23 MatrixTimesScalar 1207 1206 - Store 1205(r7) 1208 - 1210: 23 Load 30(inFM0) - 1211: 23 Load 31(inFM1) - 1212: 23 MatrixTimesMatrix 1210 1211 - Store 1209(r8) 1212 +89(TestGenMul3(f1;f1;vf3;vf3;mf33;mf33;): 2 Function None 82 + 83(inF0): 7(ptr) FunctionParameter + 84(inF1): 7(ptr) FunctionParameter + 85(inFV0): 37(ptr) FunctionParameter + 86(inFV1): 37(ptr) FunctionParameter + 87(inFM0): 57(ptr) FunctionParameter + 88(inFM1): 57(ptr) FunctionParameter + 90: Label + 1650(r0): 7(ptr) Variable Function + 1654(r1): 37(ptr) Variable Function + 1658(r2): 37(ptr) Variable Function + 1662(r3): 7(ptr) Variable Function + 1666(r4): 37(ptr) Variable Function + 1670(r5): 37(ptr) Variable Function + 1674(r6): 57(ptr) Variable Function + 1678(r7): 57(ptr) Variable Function + 1682(r8): 57(ptr) Variable Function + 1651: 6(float) Load 83(inF0) + 1652: 6(float) Load 84(inF1) + 1653: 6(float) FMul 1651 1652 + Store 1650(r0) 1653 + 1655: 36(fvec3) Load 85(inFV0) + 1656: 6(float) Load 83(inF0) + 1657: 36(fvec3) VectorTimesScalar 1655 1656 + Store 1654(r1) 1657 + 1659: 6(float) Load 83(inF0) + 1660: 36(fvec3) Load 85(inFV0) + 1661: 36(fvec3) VectorTimesScalar 1660 1659 + Store 1658(r2) 1661 + 1663: 36(fvec3) Load 85(inFV0) + 1664: 36(fvec3) Load 86(inFV1) + 1665: 6(float) Dot 1663 1664 + Store 1662(r3) 1665 + 1667: 56 Load 87(inFM0) + 1668: 36(fvec3) Load 85(inFV0) + 1669: 36(fvec3) MatrixTimesVector 1667 1668 + Store 1666(r4) 1669 + 1671: 36(fvec3) Load 85(inFV0) + 1672: 56 Load 87(inFM0) + 1673: 36(fvec3) VectorTimesMatrix 1671 1672 + Store 1670(r5) 1673 + 1675: 56 Load 87(inFM0) + 1676: 6(float) Load 83(inF0) + 1677: 56 MatrixTimesScalar 1675 1676 + Store 1674(r6) 1677 + 1679: 6(float) Load 83(inF0) + 1680: 56 Load 87(inFM0) + 1681: 56 MatrixTimesScalar 1680 1679 + Store 1678(r7) 1681 + 1683: 56 Load 87(inFM0) + 1684: 56 Load 88(inFM1) + 1685: 56 MatrixTimesMatrix 1683 1684 + Store 1682(r8) 1685 Return FunctionEnd -45(TestGenMul(f1;f1;vf4;vf4;mf44;mf44;): 2 Function None 38 - 39(inF0): 7(ptr) FunctionParameter - 40(inF1): 7(ptr) FunctionParameter - 41(inFV0): 35(ptr) FunctionParameter - 42(inFV1): 35(ptr) FunctionParameter - 43(inFM0): 37(ptr) FunctionParameter - 44(inFM1): 37(ptr) FunctionParameter - 46: Label - 1213(r0): 7(ptr) Variable Function - 1217(r1): 35(ptr) Variable Function - 1221(r2): 35(ptr) Variable Function - 1225(r3): 7(ptr) Variable Function - 1229(r4): 35(ptr) Variable Function - 1233(r5): 35(ptr) Variable Function - 1237(r6): 37(ptr) Variable Function - 1241(r7): 37(ptr) Variable Function - 1245(r8): 37(ptr) Variable Function - 1250(gs_ua): 1249(ptr) Variable Function - 1251(gs_ub): 1249(ptr) Variable Function - 1252(gs_uc): 1249(ptr) Variable Function - 1254(gs_ua2): 1253(ptr) Variable Function - 1255(gs_ub2): 1253(ptr) Variable Function - 1256(gs_uc2): 1253(ptr) Variable Function - 1258(gs_ua3): 1257(ptr) Variable Function - 1259(gs_ub3): 1257(ptr) Variable Function - 1260(gs_uc3): 1257(ptr) Variable Function - 1262(gs_ua4): 1261(ptr) Variable Function - 1263(gs_ub4): 1261(ptr) Variable Function - 1264(gs_uc4): 1261(ptr) Variable Function - 1214: 6(float) Load 39(inF0) - 1215: 6(float) Load 40(inF1) - 1216: 6(float) FMul 1214 1215 - Store 1213(r0) 1216 - 1218: 34(fvec4) Load 41(inFV0) - 1219: 6(float) Load 39(inF0) - 1220: 34(fvec4) VectorTimesScalar 1218 1219 - Store 1217(r1) 1220 - 1222: 6(float) Load 39(inF0) - 1223: 34(fvec4) Load 41(inFV0) - 1224: 34(fvec4) VectorTimesScalar 1223 1222 - Store 1221(r2) 1224 - 1226: 34(fvec4) Load 41(inFV0) - 1227: 34(fvec4) Load 42(inFV1) - 1228: 6(float) Dot 1226 1227 - Store 1225(r3) 1228 - 1230: 36 Load 43(inFM0) - 1231: 34(fvec4) Load 41(inFV0) - 1232: 34(fvec4) MatrixTimesVector 1230 1231 - Store 1229(r4) 1232 - 1234: 34(fvec4) Load 41(inFV0) - 1235: 36 Load 43(inFM0) - 1236: 34(fvec4) VectorTimesMatrix 1234 1235 - Store 1233(r5) 1236 - 1238: 36 Load 43(inFM0) - 1239: 6(float) Load 39(inF0) - 1240: 36 MatrixTimesScalar 1238 1239 - Store 1237(r6) 1240 - 1242: 6(float) Load 39(inF0) - 1243: 36 Load 43(inFM0) - 1244: 36 MatrixTimesScalar 1243 1242 - Store 1241(r7) 1244 - 1246: 36 Load 43(inFM0) - 1247: 36 Load 44(inFM1) - 1248: 36 MatrixTimesMatrix 1246 1247 - Store 1245(r8) 1248 +99(TestGenMul4(f1;f1;vf4;vf4;mf44;mf44;): 2 Function None 92 + 93(inF0): 7(ptr) FunctionParameter + 94(inF1): 7(ptr) FunctionParameter + 95(inFV0): 91(ptr) FunctionParameter + 96(inFV1): 91(ptr) FunctionParameter + 97(inFM0): 66(ptr) FunctionParameter + 98(inFM1): 66(ptr) FunctionParameter + 100: Label + 1686(r0): 7(ptr) Variable Function + 1690(r1): 91(ptr) Variable Function + 1694(r2): 91(ptr) Variable Function + 1698(r3): 7(ptr) Variable Function + 1702(r4): 91(ptr) Variable Function + 1706(r5): 91(ptr) Variable Function + 1710(r6): 66(ptr) Variable Function + 1714(r7): 66(ptr) Variable Function + 1718(r8): 66(ptr) Variable Function + 1687: 6(float) Load 93(inF0) + 1688: 6(float) Load 94(inF1) + 1689: 6(float) FMul 1687 1688 + Store 1686(r0) 1689 + 1691: 64(fvec4) Load 95(inFV0) + 1692: 6(float) Load 93(inF0) + 1693: 64(fvec4) VectorTimesScalar 1691 1692 + Store 1690(r1) 1693 + 1695: 6(float) Load 93(inF0) + 1696: 64(fvec4) Load 95(inFV0) + 1697: 64(fvec4) VectorTimesScalar 1696 1695 + Store 1694(r2) 1697 + 1699: 64(fvec4) Load 95(inFV0) + 1700: 64(fvec4) Load 96(inFV1) + 1701: 6(float) Dot 1699 1700 + Store 1698(r3) 1701 + 1703: 65 Load 97(inFM0) + 1704: 64(fvec4) Load 95(inFV0) + 1705: 64(fvec4) MatrixTimesVector 1703 1704 + Store 1702(r4) 1705 + 1707: 64(fvec4) Load 95(inFV0) + 1708: 65 Load 97(inFM0) + 1709: 64(fvec4) VectorTimesMatrix 1707 1708 + Store 1706(r5) 1709 + 1711: 65 Load 97(inFM0) + 1712: 6(float) Load 93(inF0) + 1713: 65 MatrixTimesScalar 1711 1712 + Store 1710(r6) 1713 + 1715: 6(float) Load 93(inF0) + 1716: 65 Load 97(inFM0) + 1717: 65 MatrixTimesScalar 1716 1715 + Store 1714(r7) 1717 + 1719: 65 Load 97(inFM0) + 1720: 65 Load 98(inFM1) + 1721: 65 MatrixTimesMatrix 1719 1720 + Store 1718(r8) 1721 + Return + FunctionEnd +119(TestGenMulNxM(f1;f1;vf2;vf3;mf32;mf23;mf33;mf43;mf42;): 2 Function None 109 + 110(inF0): 7(ptr) FunctionParameter + 111(inF1): 7(ptr) FunctionParameter + 112(inFV2): 25(ptr) FunctionParameter + 113(inFV3): 37(ptr) FunctionParameter + 114(inFM2x3): 102(ptr) FunctionParameter + 115(inFM3x2): 104(ptr) FunctionParameter + 116(inFM3x3): 57(ptr) FunctionParameter + 117(inFM3x4): 106(ptr) FunctionParameter + 118(inFM2x4): 108(ptr) FunctionParameter + 120: Label + 1722(r00): 7(ptr) Variable Function + 1726(r01): 25(ptr) Variable Function + 1730(r02): 37(ptr) Variable Function + 1734(r03): 25(ptr) Variable Function + 1738(r04): 37(ptr) Variable Function + 1742(r05): 7(ptr) Variable Function + 1746(r06): 7(ptr) Variable Function + 1750(r07): 37(ptr) Variable Function + 1754(r08): 25(ptr) Variable Function + 1758(r09): 25(ptr) Variable Function + 1762(r10): 37(ptr) Variable Function + 1766(r11): 102(ptr) Variable Function + 1770(r12): 104(ptr) Variable Function + 1774(r13): 49(ptr) Variable Function + 1778(r14): 102(ptr) Variable Function + 1782(r15): 108(ptr) Variable Function + 1786(r16): 106(ptr) Variable Function + 1723: 6(float) Load 110(inF0) + 1724: 6(float) Load 111(inF1) + 1725: 6(float) FMul 1723 1724 + Store 1722(r00) 1725 + 1727: 24(fvec2) Load 112(inFV2) + 1728: 6(float) Load 110(inF0) + 1729: 24(fvec2) VectorTimesScalar 1727 1728 + Store 1726(r01) 1729 + 1731: 36(fvec3) Load 113(inFV3) + 1732: 6(float) Load 110(inF0) + 1733: 36(fvec3) VectorTimesScalar 1731 1732 + Store 1730(r02) 1733 + 1735: 6(float) Load 110(inF0) + 1736: 24(fvec2) Load 112(inFV2) + 1737: 24(fvec2) VectorTimesScalar 1736 1735 + Store 1734(r03) 1737 + 1739: 6(float) Load 110(inF0) + 1740: 36(fvec3) Load 113(inFV3) + 1741: 36(fvec3) VectorTimesScalar 1740 1739 + Store 1738(r04) 1741 + 1743: 24(fvec2) Load 112(inFV2) + 1744: 24(fvec2) Load 112(inFV2) + 1745: 6(float) Dot 1743 1744 + Store 1742(r05) 1745 + 1747: 36(fvec3) Load 113(inFV3) + 1748: 36(fvec3) Load 113(inFV3) + 1749: 6(float) Dot 1747 1748 + Store 1746(r06) 1749 + 1751: 24(fvec2) Load 112(inFV2) + 1752: 101 Load 114(inFM2x3) + 1753: 36(fvec3) VectorTimesMatrix 1751 1752 + Store 1750(r07) 1753 + 1755: 36(fvec3) Load 113(inFV3) + 1756: 103 Load 115(inFM3x2) + 1757: 24(fvec2) VectorTimesMatrix 1755 1756 + Store 1754(r08) 1757 + 1759: 101 Load 114(inFM2x3) + 1760: 36(fvec3) Load 113(inFV3) + 1761: 24(fvec2) MatrixTimesVector 1759 1760 + Store 1758(r09) 1761 + 1763: 103 Load 115(inFM3x2) + 1764: 24(fvec2) Load 112(inFV2) + 1765: 36(fvec3) MatrixTimesVector 1763 1764 + Store 1762(r10) 1765 + 1767: 101 Load 114(inFM2x3) + 1768: 6(float) Load 110(inF0) + 1769: 101 MatrixTimesScalar 1767 1768 + Store 1766(r11) 1769 + 1771: 103 Load 115(inFM3x2) + 1772: 6(float) Load 110(inF0) + 1773: 103 MatrixTimesScalar 1771 1772 + Store 1770(r12) 1773 + 1775: 101 Load 114(inFM2x3) + 1776: 103 Load 115(inFM3x2) + 1777: 48 MatrixTimesMatrix 1775 1776 + Store 1774(r13) 1777 + 1779: 101 Load 114(inFM2x3) + 1780: 56 Load 116(inFM3x3) + 1781: 101 MatrixTimesMatrix 1779 1780 + Store 1778(r14) 1781 + 1783: 101 Load 114(inFM2x3) + 1784: 105 Load 117(inFM3x4) + 1785: 107 MatrixTimesMatrix 1783 1784 + Store 1782(r15) 1785 + 1787: 103 Load 115(inFM3x2) + 1788: 107 Load 118(inFM2x4) + 1789: 105 MatrixTimesMatrix 1787 1788 + Store 1786(r16) 1789 Return FunctionEnd diff --git a/Test/baseResults/hlsl.intrinsics.lit.frag.out b/Test/baseResults/hlsl.intrinsics.lit.frag.out index 3a6becfa..fe6f93c9 100644 --- a/Test/baseResults/hlsl.intrinsics.lit.frag.out +++ b/Test/baseResults/hlsl.intrinsics.lit.frag.out @@ -2,38 +2,39 @@ hlsl.intrinsics.lit.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:5 Function Definition: PixelShaderFunction(f1;f1;f1; (temp void) +0:5 Function Definition: PixelShaderFunction(f1;f1;f1; (global void) 0:2 Function Parameters: 0:2 'n_dot_l' (in float) 0:2 'n_dot_h' (in float) 0:2 'm' (in float) 0:? Sequence -0:3 move second child to first child (temp 4-component vector of float) -0:3 'r0' (temp 4-component vector of float) -0:3 Construct vec4 (temp 4-component vector of float) -0:3 Constant: -0:3 1.000000 -0:3 max (temp float) -0:3 'n_dot_l' (in float) +0:3 Sequence +0:3 move second child to first child (temp 4-component vector of float) +0:3 'r0' (temp 4-component vector of float) +0:3 Construct vec4 (temp 4-component vector of float) 0:3 Constant: -0:3 0.000000 -0:3 Test condition and select (temp float) -0:3 Condition -0:3 Compare Less Than (temp bool) -0:3 min (temp float) -0:3 'n_dot_l' (in float) -0:3 'n_dot_h' (in float) +0:3 1.000000 +0:3 max (temp float) +0:3 'n_dot_l' (in float) 0:3 Constant: 0:3 0.000000 -0:3 true case +0:3 Test condition and select (temp float) +0:3 Condition +0:3 Compare Less Than (temp bool) +0:3 min (temp float) +0:3 'n_dot_l' (in float) +0:3 'n_dot_h' (in float) +0:3 Constant: +0:3 0.000000 +0:3 true case +0:3 Constant: +0:3 0.000000 +0:3 false case +0:3 component-wise multiply (temp float) +0:3 'n_dot_h' (in float) +0:3 'm' (in float) 0:3 Constant: -0:3 0.000000 -0:3 false case -0:3 component-wise multiply (temp float) -0:3 'n_dot_h' (in float) -0:3 'm' (in float) -0:3 Constant: -0:3 1.000000 +0:3 1.000000 0:? Linker Objects @@ -43,38 +44,39 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:5 Function Definition: PixelShaderFunction(f1;f1;f1; (temp void) +0:5 Function Definition: PixelShaderFunction(f1;f1;f1; (global void) 0:2 Function Parameters: 0:2 'n_dot_l' (in float) 0:2 'n_dot_h' (in float) 0:2 'm' (in float) 0:? Sequence -0:3 move second child to first child (temp 4-component vector of float) -0:3 'r0' (temp 4-component vector of float) -0:3 Construct vec4 (temp 4-component vector of float) -0:3 Constant: -0:3 1.000000 -0:3 max (temp float) -0:3 'n_dot_l' (in float) +0:3 Sequence +0:3 move second child to first child (temp 4-component vector of float) +0:3 'r0' (temp 4-component vector of float) +0:3 Construct vec4 (temp 4-component vector of float) 0:3 Constant: -0:3 0.000000 -0:3 Test condition and select (temp float) -0:3 Condition -0:3 Compare Less Than (temp bool) -0:3 min (temp float) -0:3 'n_dot_l' (in float) -0:3 'n_dot_h' (in float) +0:3 1.000000 +0:3 max (temp float) +0:3 'n_dot_l' (in float) 0:3 Constant: 0:3 0.000000 -0:3 true case +0:3 Test condition and select (temp float) +0:3 Condition +0:3 Compare Less Than (temp bool) +0:3 min (temp float) +0:3 'n_dot_l' (in float) +0:3 'n_dot_h' (in float) +0:3 Constant: +0:3 0.000000 +0:3 true case +0:3 Constant: +0:3 0.000000 +0:3 false case +0:3 component-wise multiply (temp float) +0:3 'n_dot_h' (in float) +0:3 'm' (in float) 0:3 Constant: -0:3 0.000000 -0:3 false case -0:3 component-wise multiply (temp float) -0:3 'n_dot_h' (in float) -0:3 'm' (in float) -0:3 Constant: -0:3 1.000000 +0:3 1.000000 0:? Linker Objects // Module Version 10000 diff --git a/Test/baseResults/hlsl.intrinsics.negative.comp.out b/Test/baseResults/hlsl.intrinsics.negative.comp.out index 336f70d4..043fa82e 100644 --- a/Test/baseResults/hlsl.intrinsics.negative.comp.out +++ b/Test/baseResults/hlsl.intrinsics.negative.comp.out @@ -18,7 +18,6 @@ ERROR: 0:22: 'EvaluateAttributeSnapped' : no matching overloaded function found ERROR: 0:23: 'f16tof32' : no matching overloaded function found ERROR: 0:24: 'firstbithigh' : no matching overloaded function found ERROR: 0:25: 'firstbitlow' : no matching overloaded function found -ERROR: 0:26: 'fma' : no matching overloaded function found ERROR: 0:27: 'fwidth' : no matching overloaded function found ERROR: 0:28: 'InterlockedAdd' : no matching overloaded function found ERROR: 0:29: 'InterlockedAdd' : no matching overloaded function found @@ -61,7 +60,6 @@ ERROR: 0:83: 'EvaluateAttributeSnapped' : no matching overloaded function found ERROR: 0:84: 'f16tof32' : no matching overloaded function found ERROR: 0:85: 'firstbithigh' : no matching overloaded function found ERROR: 0:86: 'firstbitlow' : no matching overloaded function found -ERROR: 0:87: 'fma' : no matching overloaded function found ERROR: 0:88: 'fwidth' : no matching overloaded function found ERROR: 0:89: 'InterlockedAdd' : no matching overloaded function found ERROR: 0:90: 'InterlockedAdd' : no matching overloaded function found @@ -96,7 +94,6 @@ ERROR: 0:128: 'EvaluateAttributeSnapped' : no matching overloaded function found ERROR: 0:129: 'f16tof32' : no matching overloaded function found ERROR: 0:130: 'firstbithigh' : no matching overloaded function found ERROR: 0:131: 'firstbitlow' : no matching overloaded function found -ERROR: 0:132: 'fma' : no matching overloaded function found ERROR: 0:133: 'fwidth' : no matching overloaded function found ERROR: 0:134: 'InterlockedAdd' : no matching overloaded function found ERROR: 0:135: 'InterlockedAdd' : no matching overloaded function found @@ -131,7 +128,6 @@ ERROR: 0:173: 'EvaluateAttributeSnapped' : no matching overloaded function found ERROR: 0:174: 'f16tof32' : no matching overloaded function found ERROR: 0:175: 'firstbithigh' : no matching overloaded function found ERROR: 0:176: 'firstbitlow' : no matching overloaded function found -ERROR: 0:177: 'fma' : no matching overloaded function found ERROR: 0:178: 'fwidth' : no matching overloaded function found ERROR: 0:179: 'InterlockedAdd' : no matching overloaded function found ERROR: 0:180: 'InterlockedAdd' : no matching overloaded function found @@ -150,13 +146,13 @@ ERROR: 0:192: 'InterlockedXor' : no matching overloaded function found ERROR: 0:193: 'noise' : no matching overloaded function found ERROR: 0:194: 'reversebits' : no matching overloaded function found ERROR: 0:195: 'transpose' : no matching overloaded function found -ERROR: 151 compilation errors. No code generated. +ERROR: 147 compilation errors. No code generated. Shader version: 450 local_size = (1, 1, 1) ERROR: node is still EOpNull! -0:56 Function Definition: ComputeShaderFunction(f1;f1;f1;i1; (temp float) +0:56 Function Definition: ComputeShaderFunctionS(f1;f1;f1;i1; (global float) 0:2 Function Parameters: 0:2 'inF0' (in float) 0:2 'inF1' (in float) @@ -201,8 +197,6 @@ ERROR: node is still EOpNull! 0:24 0.000000 0:25 Constant: 0:25 0.000000 -0:26 Constant: -0:26 0.000000 0:27 Constant: 0:27 0.000000 0:28 Constant: @@ -252,7 +246,7 @@ ERROR: node is still EOpNull! 0:53 Branch: Return with expression 0:53 Constant: 0:53 0.000000 -0:65 Function Definition: ComputeShaderFunction(vf1;vf1;vf1;vi1; (temp 1-component vector of float) +0:65 Function Definition: ComputeShaderFunction1(vf1;vf1;vf1;vi1; (global 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) @@ -264,7 +258,7 @@ ERROR: node is still EOpNull! 0:62 Branch: Return with expression 0:62 Constant: 0:62 0.000000 -0:112 Function Definition: ComputeShaderFunction(vf2;vf2;vf2;vi2; (temp 2-component vector of float) +0:112 Function Definition: ComputeShaderFunction2(vf2;vf2;vf2;vi2; (global 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) @@ -307,8 +301,6 @@ ERROR: node is still EOpNull! 0:85 0.000000 0:86 Constant: 0:86 0.000000 -0:87 Constant: -0:87 0.000000 0:88 Constant: 0:88 0.000000 0:89 Constant: @@ -349,7 +341,7 @@ ERROR: node is still EOpNull! 0:? Constant: 0:? 1.000000 0:? 2.000000 -0:157 Function Definition: ComputeShaderFunction(vf3;vf3;vf3;vi3; (temp 3-component vector of float) +0:157 Function Definition: ComputeShaderFunction3(vf3;vf3;vf3;vi3; (global 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) @@ -388,8 +380,6 @@ ERROR: node is still EOpNull! 0:130 0.000000 0:131 Constant: 0:131 0.000000 -0:132 Constant: -0:132 0.000000 0:133 Constant: 0:133 0.000000 0:134 Constant: @@ -431,7 +421,7 @@ ERROR: node is still EOpNull! 0:? 1.000000 0:? 2.000000 0:? 3.000000 -0:202 Function Definition: ComputeShaderFunction(vf4;vf4;vf4;vi4; (temp 4-component vector of float) +0:202 Function Definition: ComputeShaderFunction(vf4;vf4;vf4;vi4; (global 4-component vector of float) 0:158 Function Parameters: 0:158 'inF0' (in 4-component vector of float) 0:158 'inF1' (in 4-component vector of float) @@ -470,8 +460,6 @@ ERROR: node is still EOpNull! 0:175 0.000000 0:176 Constant: 0:176 0.000000 -0:177 Constant: -0:177 0.000000 0:178 Constant: 0:178 0.000000 0:179 Constant: @@ -523,7 +511,7 @@ Linked compute stage: Shader version: 450 local_size = (1, 1, 1) ERROR: node is still EOpNull! -0:56 Function Definition: ComputeShaderFunction(f1;f1;f1;i1; (temp float) +0:56 Function Definition: ComputeShaderFunctionS(f1;f1;f1;i1; (global float) 0:2 Function Parameters: 0:2 'inF0' (in float) 0:2 'inF1' (in float) @@ -568,8 +556,6 @@ ERROR: node is still EOpNull! 0:24 0.000000 0:25 Constant: 0:25 0.000000 -0:26 Constant: -0:26 0.000000 0:27 Constant: 0:27 0.000000 0:28 Constant: @@ -619,7 +605,7 @@ ERROR: node is still EOpNull! 0:53 Branch: Return with expression 0:53 Constant: 0:53 0.000000 -0:65 Function Definition: ComputeShaderFunction(vf1;vf1;vf1;vi1; (temp 1-component vector of float) +0:65 Function Definition: ComputeShaderFunction1(vf1;vf1;vf1;vi1; (global 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) @@ -631,7 +617,7 @@ ERROR: node is still EOpNull! 0:62 Branch: Return with expression 0:62 Constant: 0:62 0.000000 -0:112 Function Definition: ComputeShaderFunction(vf2;vf2;vf2;vi2; (temp 2-component vector of float) +0:112 Function Definition: ComputeShaderFunction2(vf2;vf2;vf2;vi2; (global 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) @@ -674,8 +660,6 @@ ERROR: node is still EOpNull! 0:85 0.000000 0:86 Constant: 0:86 0.000000 -0:87 Constant: -0:87 0.000000 0:88 Constant: 0:88 0.000000 0:89 Constant: @@ -716,7 +700,7 @@ ERROR: node is still EOpNull! 0:? Constant: 0:? 1.000000 0:? 2.000000 -0:157 Function Definition: ComputeShaderFunction(vf3;vf3;vf3;vi3; (temp 3-component vector of float) +0:157 Function Definition: ComputeShaderFunction3(vf3;vf3;vf3;vi3; (global 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) @@ -755,8 +739,6 @@ ERROR: node is still EOpNull! 0:130 0.000000 0:131 Constant: 0:131 0.000000 -0:132 Constant: -0:132 0.000000 0:133 Constant: 0:133 0.000000 0:134 Constant: @@ -798,7 +780,7 @@ ERROR: node is still EOpNull! 0:? 1.000000 0:? 2.000000 0:? 3.000000 -0:202 Function Definition: ComputeShaderFunction(vf4;vf4;vf4;vi4; (temp 4-component vector of float) +0:202 Function Definition: ComputeShaderFunction(vf4;vf4;vf4;vi4; (global 4-component vector of float) 0:158 Function Parameters: 0:158 'inF0' (in 4-component vector of float) 0:158 'inF1' (in 4-component vector of float) @@ -837,8 +819,6 @@ ERROR: node is still EOpNull! 0:175 0.000000 0:176 Constant: 0:176 0.000000 -0:177 Constant: -0:177 0.000000 0:178 Constant: 0:178 0.000000 0:179 Constant: diff --git a/Test/baseResults/hlsl.intrinsics.negative.frag.out b/Test/baseResults/hlsl.intrinsics.negative.frag.out index ebb651ee..829b6998 100644 --- a/Test/baseResults/hlsl.intrinsics.negative.frag.out +++ b/Test/baseResults/hlsl.intrinsics.negative.frag.out @@ -8,7 +8,6 @@ ERROR: 0:10: 'determinant' : no matching overloaded function found ERROR: 0:12: 'f16tof32' : no matching overloaded function found ERROR: 0:13: 'firstbithigh' : no matching overloaded function found ERROR: 0:14: 'firstbitlow' : no matching overloaded function found -ERROR: 0:15: 'fma' : no matching overloaded function found ERROR: 0:23: 'length' : no matching overloaded function found ERROR: 0:24: 'msad4' : no matching overloaded function found ERROR: 0:25: 'normalize' : no matching overloaded function found @@ -27,7 +26,6 @@ ERROR: 0:51: 'determinant' : no matching overloaded function found ERROR: 0:52: 'f16tof32' : no matching overloaded function found ERROR: 0:53: 'firstbithigh' : no matching overloaded function found ERROR: 0:54: 'firstbitlow' : no matching overloaded function found -ERROR: 0:55: 'fma' : no matching overloaded function found ERROR: 0:56: 'reversebits' : no matching overloaded function found ERROR: 0:57: 'transpose' : no matching overloaded function found ERROR: 0:64: 'CheckAccessFullyMapped' : no matching overloaded function found @@ -37,7 +35,6 @@ ERROR: 0:67: 'determinant' : no matching overloaded function found ERROR: 0:68: 'f16tof32' : no matching overloaded function found ERROR: 0:69: 'firstbithigh' : no matching overloaded function found ERROR: 0:70: 'firstbitlow' : no matching overloaded function found -ERROR: 0:71: 'fma' : no matching overloaded function found ERROR: 0:72: 'reversebits' : no matching overloaded function found ERROR: 0:73: 'transpose' : no matching overloaded function found ERROR: 0:81: 'CheckAccessFullyMapped' : no matching overloaded function found @@ -47,58 +44,54 @@ ERROR: 0:84: 'determinant' : no matching overloaded function found ERROR: 0:85: 'f16tof32' : no matching overloaded function found ERROR: 0:86: 'firstbithigh' : no matching overloaded function found ERROR: 0:87: 'firstbitlow' : no matching overloaded function found -ERROR: 0:88: 'fma' : no matching overloaded function found ERROR: 0:89: 'reversebits' : no matching overloaded function found ERROR: 0:90: 'transpose' : no matching overloaded function found -ERROR: 0:118: 'countbits' : no matching overloaded function found -ERROR: 0:118: 'D3DCOLORtoUBYTE4' : no matching overloaded function found -ERROR: 0:118: 'cross' : no matching overloaded function found -ERROR: 0:118: 'f16tof32' : no matching overloaded function found -ERROR: 0:118: 'firstbithigh' : no matching overloaded function found -ERROR: 0:118: 'firstbitlow' : no matching overloaded function found -ERROR: 0:118: 'fma' : no matching overloaded function found -ERROR: 0:118: 'reversebits' : no matching overloaded function found -ERROR: 0:118: 'length' : no matching overloaded function found -ERROR: 0:118: 'noise' : no matching overloaded function found -ERROR: 0:118: 'normalize' : no matching overloaded function found -ERROR: 0:118: 'reflect' : no matching overloaded function found -ERROR: 0:118: 'refract' : no matching overloaded function found -ERROR: 0:118: 'reversebits' : no matching overloaded function found -ERROR: 0:126: 'countbits' : no matching overloaded function found -ERROR: 0:126: 'D3DCOLORtoUBYTE4' : no matching overloaded function found -ERROR: 0:126: 'cross' : no matching overloaded function found -ERROR: 0:126: 'f16tof32' : no matching overloaded function found -ERROR: 0:126: 'firstbithigh' : no matching overloaded function found -ERROR: 0:126: 'firstbitlow' : no matching overloaded function found -ERROR: 0:126: 'fma' : no matching overloaded function found -ERROR: 0:126: 'reversebits' : no matching overloaded function found -ERROR: 0:126: 'length' : no matching overloaded function found -ERROR: 0:126: 'noise' : no matching overloaded function found -ERROR: 0:126: 'normalize' : no matching overloaded function found -ERROR: 0:126: 'reflect' : no matching overloaded function found -ERROR: 0:126: 'refract' : no matching overloaded function found -ERROR: 0:126: 'reversebits' : no matching overloaded function found -ERROR: 0:134: 'countbits' : no matching overloaded function found -ERROR: 0:134: 'D3DCOLORtoUBYTE4' : no matching overloaded function found -ERROR: 0:134: 'cross' : no matching overloaded function found -ERROR: 0:134: 'f16tof32' : no matching overloaded function found -ERROR: 0:134: 'firstbithigh' : no matching overloaded function found -ERROR: 0:134: 'firstbitlow' : no matching overloaded function found -ERROR: 0:134: 'fma' : no matching overloaded function found -ERROR: 0:134: 'reversebits' : no matching overloaded function found -ERROR: 0:134: 'length' : no matching overloaded function found -ERROR: 0:134: 'noise' : no matching overloaded function found -ERROR: 0:134: 'normalize' : no matching overloaded function found -ERROR: 0:134: 'reflect' : no matching overloaded function found -ERROR: 0:134: 'refract' : no matching overloaded function found -ERROR: 0:134: 'reversebits' : no matching overloaded function found -ERROR: 93 compilation errors. No code generated. +ERROR: 0:117: 'countbits' : no matching overloaded function found +ERROR: 0:117: 'D3DCOLORtoUBYTE4' : no matching overloaded function found +ERROR: 0:117: 'cross' : no matching overloaded function found +ERROR: 0:117: 'f16tof32' : no matching overloaded function found +ERROR: 0:117: 'firstbithigh' : no matching overloaded function found +ERROR: 0:117: 'firstbitlow' : no matching overloaded function found +ERROR: 0:117: 'reversebits' : no matching overloaded function found +ERROR: 0:117: 'length' : no matching overloaded function found +ERROR: 0:117: 'noise' : no matching overloaded function found +ERROR: 0:117: 'normalize' : no matching overloaded function found +ERROR: 0:117: 'reflect' : no matching overloaded function found +ERROR: 0:117: 'refract' : no matching overloaded function found +ERROR: 0:117: 'reversebits' : no matching overloaded function found +ERROR: 0:125: 'countbits' : no matching overloaded function found +ERROR: 0:125: 'D3DCOLORtoUBYTE4' : no matching overloaded function found +ERROR: 0:125: 'cross' : no matching overloaded function found +ERROR: 0:125: 'f16tof32' : no matching overloaded function found +ERROR: 0:125: 'firstbithigh' : no matching overloaded function found +ERROR: 0:125: 'firstbitlow' : no matching overloaded function found +ERROR: 0:125: 'reversebits' : no matching overloaded function found +ERROR: 0:125: 'length' : no matching overloaded function found +ERROR: 0:125: 'noise' : no matching overloaded function found +ERROR: 0:125: 'normalize' : no matching overloaded function found +ERROR: 0:125: 'reflect' : no matching overloaded function found +ERROR: 0:125: 'refract' : no matching overloaded function found +ERROR: 0:125: 'reversebits' : no matching overloaded function found +ERROR: 0:133: 'countbits' : no matching overloaded function found +ERROR: 0:133: 'D3DCOLORtoUBYTE4' : no matching overloaded function found +ERROR: 0:133: 'cross' : no matching overloaded function found +ERROR: 0:133: 'f16tof32' : no matching overloaded function found +ERROR: 0:133: 'firstbithigh' : no matching overloaded function found +ERROR: 0:133: 'firstbitlow' : no matching overloaded function found +ERROR: 0:133: 'reversebits' : no matching overloaded function found +ERROR: 0:133: 'length' : no matching overloaded function found +ERROR: 0:133: 'noise' : no matching overloaded function found +ERROR: 0:133: 'normalize' : no matching overloaded function found +ERROR: 0:133: 'reflect' : no matching overloaded function found +ERROR: 0:133: 'refract' : no matching overloaded function found +ERROR: 0:133: 'reversebits' : no matching overloaded function found +ERROR: 86 compilation errors. No code generated. Shader version: 450 gl_FragCoord origin is upper left ERROR: node is still EOpNull! -0:35 Function Definition: PixelShaderFunction(f1;f1;f1;i1; (temp float) +0:35 Function Definition: PixelShaderFunctionS(f1;f1;f1;i1; (global float) 0:2 Function Parameters: 0:2 'inF0' (in float) 0:2 'inF1' (in float) @@ -123,8 +116,6 @@ ERROR: node is still EOpNull! 0:13 0.000000 0:14 Constant: 0:14 0.000000 -0:15 Constant: -0:15 0.000000 0:23 Constant: 0:23 0.000000 0:24 Constant: @@ -144,7 +135,7 @@ ERROR: node is still EOpNull! 0:32 Branch: Return with expression 0:32 Constant: 0:32 0.000000 -0:44 Function Definition: PixelShaderFunction(vf1;vf1;vf1;vi1; (temp 1-component vector of float) +0:44 Function Definition: PixelShaderFunction1(vf1;vf1;vf1;vi1; (global 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) @@ -156,7 +147,7 @@ ERROR: node is still EOpNull! 0:41 Branch: Return with expression 0:41 Constant: 0:41 0.000000 -0:62 Function Definition: PixelShaderFunction(vf2;vf2;vf2;vi2; (temp 2-component vector of float) +0:62 Function Definition: PixelShaderFunction2(vf2;vf2;vf2;vi2; (global 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) @@ -181,8 +172,6 @@ ERROR: node is still EOpNull! 0:53 0.000000 0:54 Constant: 0:54 0.000000 -0:55 Constant: -0:55 0.000000 0:56 Constant: 0:56 0.000000 0:57 Constant: @@ -191,7 +180,7 @@ ERROR: node is still EOpNull! 0:? Constant: 0:? 1.000000 0:? 2.000000 -0:79 Function Definition: PixelShaderFunction(vf3;vf3;vf3;vi3; (temp 3-component vector of float) +0:79 Function Definition: PixelShaderFunction3(vf3;vf3;vf3;vi3; (global 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) @@ -212,8 +201,6 @@ ERROR: node is still EOpNull! 0:69 0.000000 0:70 Constant: 0:70 0.000000 -0:71 Constant: -0:71 0.000000 0:72 Constant: 0:72 0.000000 0:73 Constant: @@ -223,7 +210,7 @@ ERROR: node is still EOpNull! 0:? 1.000000 0:? 2.000000 0:? 3.000000 -0:115 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vi4; (temp 4-component vector of float) +0:114 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vi4; (global 4-component vector of float) 0:80 Function Parameters: 0:80 'inF0' (in 4-component vector of float) 0:80 'inF1' (in 4-component vector of float) @@ -244,8 +231,6 @@ ERROR: node is still EOpNull! 0:86 0.000000 0:87 Constant: 0:87 0.000000 -0:88 Constant: -0:88 0.000000 0:89 Constant: 0:89 0.000000 0:90 Constant: @@ -256,81 +241,77 @@ ERROR: node is still EOpNull! 0:? 2.000000 0:? 3.000000 0:? 4.000000 -0:123 Function Definition: PixelShaderFunction(mf22;mf22;mf22; (temp 2X2 matrix of float) -0:116 Function Parameters: -0:116 'inF0' (in 2X2 matrix of float) -0:116 'inF1' (in 2X2 matrix of float) -0:116 'inF2' (in 2X2 matrix of float) +0:122 Function Definition: PixelShaderFunction2x2(mf22;mf22;mf22; (global 2X2 matrix of float) +0:115 Function Parameters: +0:115 'inF0' (in 2X2 matrix of float) +0:115 'inF1' (in 2X2 matrix of float) +0:115 'inF2' (in 2X2 matrix of float) 0:? Sequence -0:118 Constant: -0:118 0.000000 -0:118 Constant: -0:118 0.000000 -0:118 Constant: -0:118 0.000000 -0:118 Constant: -0:118 0.000000 -0:118 Constant: -0:118 0.000000 -0:118 Constant: -0:118 0.000000 -0:118 Constant: -0:118 0.000000 -0:118 Constant: -0:118 0.000000 -0:118 Constant: -0:118 0.000000 -0:118 Constant: -0:118 0.000000 -0:118 Constant: -0:118 0.000000 -0:118 Constant: -0:118 0.000000 -0:118 Constant: -0:118 0.000000 -0:118 Constant: -0:118 0.000000 -0:120 Branch: Return with expression +0:117 Constant: +0:117 0.000000 +0:117 Constant: +0:117 0.000000 +0:117 Constant: +0:117 0.000000 +0:117 Constant: +0:117 0.000000 +0:117 Constant: +0:117 0.000000 +0:117 Constant: +0:117 0.000000 +0:117 Constant: +0:117 0.000000 +0:117 Constant: +0:117 0.000000 +0:117 Constant: +0:117 0.000000 +0:117 Constant: +0:117 0.000000 +0:117 Constant: +0:117 0.000000 +0:117 Constant: +0:117 0.000000 +0:117 Constant: +0:117 0.000000 +0:119 Branch: Return with expression 0:? Constant: 0:? 2.000000 0:? 2.000000 0:? 2.000000 0:? 2.000000 -0:131 Function Definition: PixelShaderFunction(mf33;mf33;mf33; (temp 3X3 matrix of float) -0:124 Function Parameters: -0:124 'inF0' (in 3X3 matrix of float) -0:124 'inF1' (in 3X3 matrix of float) -0:124 'inF2' (in 3X3 matrix of float) +0:130 Function Definition: PixelShaderFunction3x3(mf33;mf33;mf33; (global 3X3 matrix of float) +0:123 Function Parameters: +0:123 'inF0' (in 3X3 matrix of float) +0:123 'inF1' (in 3X3 matrix of float) +0:123 'inF2' (in 3X3 matrix of float) 0:? Sequence -0:126 Constant: -0:126 0.000000 -0:126 Constant: -0:126 0.000000 -0:126 Constant: -0:126 0.000000 -0:126 Constant: -0:126 0.000000 -0:126 Constant: -0:126 0.000000 -0:126 Constant: -0:126 0.000000 -0:126 Constant: -0:126 0.000000 -0:126 Constant: -0:126 0.000000 -0:126 Constant: -0:126 0.000000 -0:126 Constant: -0:126 0.000000 -0:126 Constant: -0:126 0.000000 -0:126 Constant: -0:126 0.000000 -0:126 Constant: -0:126 0.000000 -0:126 Constant: -0:126 0.000000 -0:128 Branch: Return with expression +0:125 Constant: +0:125 0.000000 +0:125 Constant: +0:125 0.000000 +0:125 Constant: +0:125 0.000000 +0:125 Constant: +0:125 0.000000 +0:125 Constant: +0:125 0.000000 +0:125 Constant: +0:125 0.000000 +0:125 Constant: +0:125 0.000000 +0:125 Constant: +0:125 0.000000 +0:125 Constant: +0:125 0.000000 +0:125 Constant: +0:125 0.000000 +0:125 Constant: +0:125 0.000000 +0:125 Constant: +0:125 0.000000 +0:125 Constant: +0:125 0.000000 +0:127 Branch: Return with expression 0:? Constant: 0:? 3.000000 0:? 3.000000 @@ -341,41 +322,39 @@ ERROR: node is still EOpNull! 0:? 3.000000 0:? 3.000000 0:? 3.000000 -0:138 Function Definition: PixelShaderFunction(mf44;mf44;mf44; (temp 4X4 matrix of float) -0:132 Function Parameters: -0:132 'inF0' (in 4X4 matrix of float) -0:132 'inF1' (in 4X4 matrix of float) -0:132 'inF2' (in 4X4 matrix of float) +0:137 Function Definition: PixelShaderFunction4x4(mf44;mf44;mf44; (global 4X4 matrix of float) +0:131 Function Parameters: +0:131 'inF0' (in 4X4 matrix of float) +0:131 'inF1' (in 4X4 matrix of float) +0:131 'inF2' (in 4X4 matrix of float) 0:? Sequence -0:134 Constant: -0:134 0.000000 -0:134 Constant: -0:134 0.000000 -0:134 Constant: -0:134 0.000000 -0:134 Constant: -0:134 0.000000 -0:134 Constant: -0:134 0.000000 -0:134 Constant: -0:134 0.000000 -0:134 Constant: -0:134 0.000000 -0:134 Constant: -0:134 0.000000 -0:134 Constant: -0:134 0.000000 -0:134 Constant: -0:134 0.000000 -0:134 Constant: -0:134 0.000000 -0:134 Constant: -0:134 0.000000 -0:134 Constant: -0:134 0.000000 -0:134 Constant: -0:134 0.000000 -0:136 Branch: Return with expression +0:133 Constant: +0:133 0.000000 +0:133 Constant: +0:133 0.000000 +0:133 Constant: +0:133 0.000000 +0:133 Constant: +0:133 0.000000 +0:133 Constant: +0:133 0.000000 +0:133 Constant: +0:133 0.000000 +0:133 Constant: +0:133 0.000000 +0:133 Constant: +0:133 0.000000 +0:133 Constant: +0:133 0.000000 +0:133 Constant: +0:133 0.000000 +0:133 Constant: +0:133 0.000000 +0:133 Constant: +0:133 0.000000 +0:133 Constant: +0:133 0.000000 +0:135 Branch: Return with expression 0:? Constant: 0:? 4.000000 0:? 4.000000 @@ -402,7 +381,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left ERROR: node is still EOpNull! -0:35 Function Definition: PixelShaderFunction(f1;f1;f1;i1; (temp float) +0:35 Function Definition: PixelShaderFunctionS(f1;f1;f1;i1; (global float) 0:2 Function Parameters: 0:2 'inF0' (in float) 0:2 'inF1' (in float) @@ -427,8 +406,6 @@ ERROR: node is still EOpNull! 0:13 0.000000 0:14 Constant: 0:14 0.000000 -0:15 Constant: -0:15 0.000000 0:23 Constant: 0:23 0.000000 0:24 Constant: @@ -448,7 +425,7 @@ ERROR: node is still EOpNull! 0:32 Branch: Return with expression 0:32 Constant: 0:32 0.000000 -0:44 Function Definition: PixelShaderFunction(vf1;vf1;vf1;vi1; (temp 1-component vector of float) +0:44 Function Definition: PixelShaderFunction1(vf1;vf1;vf1;vi1; (global 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) @@ -460,7 +437,7 @@ ERROR: node is still EOpNull! 0:41 Branch: Return with expression 0:41 Constant: 0:41 0.000000 -0:62 Function Definition: PixelShaderFunction(vf2;vf2;vf2;vi2; (temp 2-component vector of float) +0:62 Function Definition: PixelShaderFunction2(vf2;vf2;vf2;vi2; (global 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) @@ -485,8 +462,6 @@ ERROR: node is still EOpNull! 0:53 0.000000 0:54 Constant: 0:54 0.000000 -0:55 Constant: -0:55 0.000000 0:56 Constant: 0:56 0.000000 0:57 Constant: @@ -495,7 +470,7 @@ ERROR: node is still EOpNull! 0:? Constant: 0:? 1.000000 0:? 2.000000 -0:79 Function Definition: PixelShaderFunction(vf3;vf3;vf3;vi3; (temp 3-component vector of float) +0:79 Function Definition: PixelShaderFunction3(vf3;vf3;vf3;vi3; (global 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) @@ -516,8 +491,6 @@ ERROR: node is still EOpNull! 0:69 0.000000 0:70 Constant: 0:70 0.000000 -0:71 Constant: -0:71 0.000000 0:72 Constant: 0:72 0.000000 0:73 Constant: @@ -527,7 +500,7 @@ ERROR: node is still EOpNull! 0:? 1.000000 0:? 2.000000 0:? 3.000000 -0:115 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vi4; (temp 4-component vector of float) +0:114 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vi4; (global 4-component vector of float) 0:80 Function Parameters: 0:80 'inF0' (in 4-component vector of float) 0:80 'inF1' (in 4-component vector of float) @@ -548,8 +521,6 @@ ERROR: node is still EOpNull! 0:86 0.000000 0:87 Constant: 0:87 0.000000 -0:88 Constant: -0:88 0.000000 0:89 Constant: 0:89 0.000000 0:90 Constant: @@ -560,81 +531,77 @@ ERROR: node is still EOpNull! 0:? 2.000000 0:? 3.000000 0:? 4.000000 -0:123 Function Definition: PixelShaderFunction(mf22;mf22;mf22; (temp 2X2 matrix of float) -0:116 Function Parameters: -0:116 'inF0' (in 2X2 matrix of float) -0:116 'inF1' (in 2X2 matrix of float) -0:116 'inF2' (in 2X2 matrix of float) +0:122 Function Definition: PixelShaderFunction2x2(mf22;mf22;mf22; (global 2X2 matrix of float) +0:115 Function Parameters: +0:115 'inF0' (in 2X2 matrix of float) +0:115 'inF1' (in 2X2 matrix of float) +0:115 'inF2' (in 2X2 matrix of float) 0:? Sequence -0:118 Constant: -0:118 0.000000 -0:118 Constant: -0:118 0.000000 -0:118 Constant: -0:118 0.000000 -0:118 Constant: -0:118 0.000000 -0:118 Constant: -0:118 0.000000 -0:118 Constant: -0:118 0.000000 -0:118 Constant: -0:118 0.000000 -0:118 Constant: -0:118 0.000000 -0:118 Constant: -0:118 0.000000 -0:118 Constant: -0:118 0.000000 -0:118 Constant: -0:118 0.000000 -0:118 Constant: -0:118 0.000000 -0:118 Constant: -0:118 0.000000 -0:118 Constant: -0:118 0.000000 -0:120 Branch: Return with expression +0:117 Constant: +0:117 0.000000 +0:117 Constant: +0:117 0.000000 +0:117 Constant: +0:117 0.000000 +0:117 Constant: +0:117 0.000000 +0:117 Constant: +0:117 0.000000 +0:117 Constant: +0:117 0.000000 +0:117 Constant: +0:117 0.000000 +0:117 Constant: +0:117 0.000000 +0:117 Constant: +0:117 0.000000 +0:117 Constant: +0:117 0.000000 +0:117 Constant: +0:117 0.000000 +0:117 Constant: +0:117 0.000000 +0:117 Constant: +0:117 0.000000 +0:119 Branch: Return with expression 0:? Constant: 0:? 2.000000 0:? 2.000000 0:? 2.000000 0:? 2.000000 -0:131 Function Definition: PixelShaderFunction(mf33;mf33;mf33; (temp 3X3 matrix of float) -0:124 Function Parameters: -0:124 'inF0' (in 3X3 matrix of float) -0:124 'inF1' (in 3X3 matrix of float) -0:124 'inF2' (in 3X3 matrix of float) +0:130 Function Definition: PixelShaderFunction3x3(mf33;mf33;mf33; (global 3X3 matrix of float) +0:123 Function Parameters: +0:123 'inF0' (in 3X3 matrix of float) +0:123 'inF1' (in 3X3 matrix of float) +0:123 'inF2' (in 3X3 matrix of float) 0:? Sequence -0:126 Constant: -0:126 0.000000 -0:126 Constant: -0:126 0.000000 -0:126 Constant: -0:126 0.000000 -0:126 Constant: -0:126 0.000000 -0:126 Constant: -0:126 0.000000 -0:126 Constant: -0:126 0.000000 -0:126 Constant: -0:126 0.000000 -0:126 Constant: -0:126 0.000000 -0:126 Constant: -0:126 0.000000 -0:126 Constant: -0:126 0.000000 -0:126 Constant: -0:126 0.000000 -0:126 Constant: -0:126 0.000000 -0:126 Constant: -0:126 0.000000 -0:126 Constant: -0:126 0.000000 -0:128 Branch: Return with expression +0:125 Constant: +0:125 0.000000 +0:125 Constant: +0:125 0.000000 +0:125 Constant: +0:125 0.000000 +0:125 Constant: +0:125 0.000000 +0:125 Constant: +0:125 0.000000 +0:125 Constant: +0:125 0.000000 +0:125 Constant: +0:125 0.000000 +0:125 Constant: +0:125 0.000000 +0:125 Constant: +0:125 0.000000 +0:125 Constant: +0:125 0.000000 +0:125 Constant: +0:125 0.000000 +0:125 Constant: +0:125 0.000000 +0:125 Constant: +0:125 0.000000 +0:127 Branch: Return with expression 0:? Constant: 0:? 3.000000 0:? 3.000000 @@ -645,41 +612,39 @@ ERROR: node is still EOpNull! 0:? 3.000000 0:? 3.000000 0:? 3.000000 -0:138 Function Definition: PixelShaderFunction(mf44;mf44;mf44; (temp 4X4 matrix of float) -0:132 Function Parameters: -0:132 'inF0' (in 4X4 matrix of float) -0:132 'inF1' (in 4X4 matrix of float) -0:132 'inF2' (in 4X4 matrix of float) +0:137 Function Definition: PixelShaderFunction4x4(mf44;mf44;mf44; (global 4X4 matrix of float) +0:131 Function Parameters: +0:131 'inF0' (in 4X4 matrix of float) +0:131 'inF1' (in 4X4 matrix of float) +0:131 'inF2' (in 4X4 matrix of float) 0:? Sequence -0:134 Constant: -0:134 0.000000 -0:134 Constant: -0:134 0.000000 -0:134 Constant: -0:134 0.000000 -0:134 Constant: -0:134 0.000000 -0:134 Constant: -0:134 0.000000 -0:134 Constant: -0:134 0.000000 -0:134 Constant: -0:134 0.000000 -0:134 Constant: -0:134 0.000000 -0:134 Constant: -0:134 0.000000 -0:134 Constant: -0:134 0.000000 -0:134 Constant: -0:134 0.000000 -0:134 Constant: -0:134 0.000000 -0:134 Constant: -0:134 0.000000 -0:134 Constant: -0:134 0.000000 -0:136 Branch: Return with expression +0:133 Constant: +0:133 0.000000 +0:133 Constant: +0:133 0.000000 +0:133 Constant: +0:133 0.000000 +0:133 Constant: +0:133 0.000000 +0:133 Constant: +0:133 0.000000 +0:133 Constant: +0:133 0.000000 +0:133 Constant: +0:133 0.000000 +0:133 Constant: +0:133 0.000000 +0:133 Constant: +0:133 0.000000 +0:133 Constant: +0:133 0.000000 +0:133 Constant: +0:133 0.000000 +0:133 Constant: +0:133 0.000000 +0:133 Constant: +0:133 0.000000 +0:135 Branch: Return with expression 0:? Constant: 0:? 4.000000 0:? 4.000000 diff --git a/Test/baseResults/hlsl.intrinsics.negative.vert.out b/Test/baseResults/hlsl.intrinsics.negative.vert.out index b24ef698..0e974a1f 100644 --- a/Test/baseResults/hlsl.intrinsics.negative.vert.out +++ b/Test/baseResults/hlsl.intrinsics.negative.vert.out @@ -23,7 +23,6 @@ ERROR: 0:38: 'EvaluateAttributeSnapped' : no matching overloaded function found ERROR: 0:39: 'f16tof32' : no matching overloaded function found ERROR: 0:40: 'firstbithigh' : no matching overloaded function found ERROR: 0:41: 'firstbitlow' : no matching overloaded function found -ERROR: 0:42: 'fma' : no matching overloaded function found ERROR: 0:43: 'fwidth' : no matching overloaded function found ERROR: 0:44: 'InterlockedAdd' : no matching overloaded function found ERROR: 0:45: 'InterlockedAdd' : no matching overloaded function found @@ -68,7 +67,6 @@ ERROR: 0:101: 'EvaluateAttributeSnapped' : no matching overloaded function found ERROR: 0:102: 'f16tof32' : no matching overloaded function found ERROR: 0:103: 'firstbithigh' : no matching overloaded function found ERROR: 0:104: 'firstbitlow' : no matching overloaded function found -ERROR: 0:105: 'fma' : no matching overloaded function found ERROR: 0:106: 'fwidth' : no matching overloaded function found ERROR: 0:107: 'InterlockedAdd' : no matching overloaded function found ERROR: 0:108: 'InterlockedAdd' : no matching overloaded function found @@ -103,7 +101,6 @@ ERROR: 0:146: 'EvaluateAttributeSnapped' : no matching overloaded function found ERROR: 0:147: 'f16tof32' : no matching overloaded function found ERROR: 0:148: 'firstbithigh' : no matching overloaded function found ERROR: 0:149: 'firstbitlow' : no matching overloaded function found -ERROR: 0:150: 'fma' : no matching overloaded function found ERROR: 0:151: 'fwidth' : no matching overloaded function found ERROR: 0:152: 'InterlockedAdd' : no matching overloaded function found ERROR: 0:153: 'InterlockedAdd' : no matching overloaded function found @@ -138,7 +135,6 @@ ERROR: 0:191: 'EvaluateAttributeSnapped' : no matching overloaded function found ERROR: 0:192: 'f16tof32' : no matching overloaded function found ERROR: 0:193: 'firstbithigh' : no matching overloaded function found ERROR: 0:194: 'firstbitlow' : no matching overloaded function found -ERROR: 0:195: 'fma' : no matching overloaded function found ERROR: 0:196: 'fwidth' : no matching overloaded function found ERROR: 0:197: 'InterlockedAdd' : no matching overloaded function found ERROR: 0:198: 'InterlockedAdd' : no matching overloaded function found @@ -157,87 +153,84 @@ ERROR: 0:210: 'InterlockedXor' : no matching overloaded function found ERROR: 0:211: 'noise' : no matching overloaded function found ERROR: 0:212: 'reversebits' : no matching overloaded function found ERROR: 0:213: 'transpose' : no matching overloaded function found -ERROR: 0:254: 'countbits' : no matching overloaded function found -ERROR: 0:254: 'cross' : no matching overloaded function found -ERROR: 0:254: 'D3DCOLORtoUBYTE4' : no matching overloaded function found -ERROR: 0:254: 'ddx' : no matching overloaded function found -ERROR: 0:254: 'ddx_coarse' : no matching overloaded function found -ERROR: 0:254: 'ddx_fine' : no matching overloaded function found -ERROR: 0:254: 'ddy' : no matching overloaded function found -ERROR: 0:254: 'ddy_coarse' : no matching overloaded function found -ERROR: 0:254: 'ddy_fine' : no matching overloaded function found -ERROR: 0:254: 'EvaluateAttributeAtCentroid' : no matching overloaded function found -ERROR: 0:254: 'EvaluateAttributeAtSample' : no matching overloaded function found -ERROR: 0:254: 'EvaluateAttributeSnapped' : no matching overloaded function found -ERROR: 0:254: 'f16tof32' : no matching overloaded function found -ERROR: 0:254: 'firstbithigh' : no matching overloaded function found -ERROR: 0:254: 'firstbitlow' : no matching overloaded function found -ERROR: 0:254: 'fma' : no matching overloaded function found -ERROR: 0:254: 'fwidth' : no matching overloaded function found -ERROR: 0:254: 'noise' : no matching overloaded function found -ERROR: 0:254: 'reversebits' : no matching overloaded function found -ERROR: 0:254: 'length' : no matching overloaded function found -ERROR: 0:254: 'noise' : no matching overloaded function found -ERROR: 0:254: 'normalize' : no matching overloaded function found -ERROR: 0:254: 'reflect' : no matching overloaded function found -ERROR: 0:254: 'refract' : no matching overloaded function found -ERROR: 0:254: 'reversebits' : no matching overloaded function found -ERROR: 0:262: 'countbits' : no matching overloaded function found -ERROR: 0:262: 'cross' : no matching overloaded function found -ERROR: 0:262: 'D3DCOLORtoUBYTE4' : no matching overloaded function found -ERROR: 0:262: 'ddx' : no matching overloaded function found -ERROR: 0:262: 'ddx_coarse' : no matching overloaded function found -ERROR: 0:262: 'ddx_fine' : no matching overloaded function found -ERROR: 0:262: 'ddy' : no matching overloaded function found -ERROR: 0:262: 'ddy_coarse' : no matching overloaded function found -ERROR: 0:262: 'ddy_fine' : no matching overloaded function found -ERROR: 0:262: 'EvaluateAttributeAtCentroid' : no matching overloaded function found -ERROR: 0:262: 'EvaluateAttributeAtSample' : no matching overloaded function found -ERROR: 0:262: 'EvaluateAttributeSnapped' : no matching overloaded function found -ERROR: 0:262: 'f16tof32' : no matching overloaded function found -ERROR: 0:262: 'firstbithigh' : no matching overloaded function found -ERROR: 0:262: 'firstbitlow' : no matching overloaded function found -ERROR: 0:262: 'fma' : no matching overloaded function found -ERROR: 0:262: 'fwidth' : no matching overloaded function found -ERROR: 0:262: 'noise' : no matching overloaded function found -ERROR: 0:262: 'reversebits' : no matching overloaded function found -ERROR: 0:262: 'length' : no matching overloaded function found -ERROR: 0:262: 'noise' : no matching overloaded function found -ERROR: 0:262: 'normalize' : no matching overloaded function found -ERROR: 0:262: 'reflect' : no matching overloaded function found -ERROR: 0:262: 'refract' : no matching overloaded function found -ERROR: 0:262: 'reversebits' : no matching overloaded function found -ERROR: 0:270: 'countbits' : no matching overloaded function found -ERROR: 0:270: 'cross' : no matching overloaded function found -ERROR: 0:270: 'D3DCOLORtoUBYTE4' : no matching overloaded function found -ERROR: 0:270: 'ddx' : no matching overloaded function found -ERROR: 0:270: 'ddx_coarse' : no matching overloaded function found -ERROR: 0:270: 'ddx_fine' : no matching overloaded function found -ERROR: 0:270: 'ddy' : no matching overloaded function found -ERROR: 0:270: 'ddy_coarse' : no matching overloaded function found -ERROR: 0:270: 'ddy_fine' : no matching overloaded function found -ERROR: 0:270: 'EvaluateAttributeAtCentroid' : no matching overloaded function found -ERROR: 0:270: 'EvaluateAttributeAtSample' : no matching overloaded function found -ERROR: 0:270: 'EvaluateAttributeSnapped' : no matching overloaded function found -ERROR: 0:270: 'f16tof32' : no matching overloaded function found -ERROR: 0:270: 'firstbithigh' : no matching overloaded function found -ERROR: 0:270: 'firstbitlow' : no matching overloaded function found -ERROR: 0:270: 'fma' : no matching overloaded function found -ERROR: 0:270: 'fwidth' : no matching overloaded function found -ERROR: 0:270: 'noise' : no matching overloaded function found -ERROR: 0:270: 'reversebits' : no matching overloaded function found -ERROR: 0:270: 'length' : no matching overloaded function found -ERROR: 0:270: 'noise' : no matching overloaded function found -ERROR: 0:270: 'normalize' : no matching overloaded function found -ERROR: 0:270: 'reflect' : no matching overloaded function found -ERROR: 0:270: 'refract' : no matching overloaded function found -ERROR: 0:270: 'reversebits' : no matching overloaded function found -ERROR: 233 compilation errors. No code generated. +ERROR: 0:253: 'countbits' : no matching overloaded function found +ERROR: 0:253: 'cross' : no matching overloaded function found +ERROR: 0:253: 'D3DCOLORtoUBYTE4' : no matching overloaded function found +ERROR: 0:253: 'ddx' : no matching overloaded function found +ERROR: 0:253: 'ddx_coarse' : no matching overloaded function found +ERROR: 0:253: 'ddx_fine' : no matching overloaded function found +ERROR: 0:253: 'ddy' : no matching overloaded function found +ERROR: 0:253: 'ddy_coarse' : no matching overloaded function found +ERROR: 0:253: 'ddy_fine' : no matching overloaded function found +ERROR: 0:253: 'EvaluateAttributeAtCentroid' : no matching overloaded function found +ERROR: 0:253: 'EvaluateAttributeAtSample' : no matching overloaded function found +ERROR: 0:253: 'EvaluateAttributeSnapped' : no matching overloaded function found +ERROR: 0:253: 'f16tof32' : no matching overloaded function found +ERROR: 0:253: 'firstbithigh' : no matching overloaded function found +ERROR: 0:253: 'firstbitlow' : no matching overloaded function found +ERROR: 0:253: 'fwidth' : no matching overloaded function found +ERROR: 0:253: 'noise' : no matching overloaded function found +ERROR: 0:253: 'reversebits' : no matching overloaded function found +ERROR: 0:253: 'length' : no matching overloaded function found +ERROR: 0:253: 'noise' : no matching overloaded function found +ERROR: 0:253: 'normalize' : no matching overloaded function found +ERROR: 0:253: 'reflect' : no matching overloaded function found +ERROR: 0:253: 'refract' : no matching overloaded function found +ERROR: 0:253: 'reversebits' : no matching overloaded function found +ERROR: 0:261: 'countbits' : no matching overloaded function found +ERROR: 0:261: 'cross' : no matching overloaded function found +ERROR: 0:261: 'D3DCOLORtoUBYTE4' : no matching overloaded function found +ERROR: 0:261: 'ddx' : no matching overloaded function found +ERROR: 0:261: 'ddx_coarse' : no matching overloaded function found +ERROR: 0:261: 'ddx_fine' : no matching overloaded function found +ERROR: 0:261: 'ddy' : no matching overloaded function found +ERROR: 0:261: 'ddy_coarse' : no matching overloaded function found +ERROR: 0:261: 'ddy_fine' : no matching overloaded function found +ERROR: 0:261: 'EvaluateAttributeAtCentroid' : no matching overloaded function found +ERROR: 0:261: 'EvaluateAttributeAtSample' : no matching overloaded function found +ERROR: 0:261: 'EvaluateAttributeSnapped' : no matching overloaded function found +ERROR: 0:261: 'f16tof32' : no matching overloaded function found +ERROR: 0:261: 'firstbithigh' : no matching overloaded function found +ERROR: 0:261: 'firstbitlow' : no matching overloaded function found +ERROR: 0:261: 'fwidth' : no matching overloaded function found +ERROR: 0:261: 'noise' : no matching overloaded function found +ERROR: 0:261: 'reversebits' : no matching overloaded function found +ERROR: 0:261: 'length' : no matching overloaded function found +ERROR: 0:261: 'noise' : no matching overloaded function found +ERROR: 0:261: 'normalize' : no matching overloaded function found +ERROR: 0:261: 'reflect' : no matching overloaded function found +ERROR: 0:261: 'refract' : no matching overloaded function found +ERROR: 0:261: 'reversebits' : no matching overloaded function found +ERROR: 0:269: 'countbits' : no matching overloaded function found +ERROR: 0:269: 'cross' : no matching overloaded function found +ERROR: 0:269: 'D3DCOLORtoUBYTE4' : no matching overloaded function found +ERROR: 0:269: 'ddx' : no matching overloaded function found +ERROR: 0:269: 'ddx_coarse' : no matching overloaded function found +ERROR: 0:269: 'ddx_fine' : no matching overloaded function found +ERROR: 0:269: 'ddy' : no matching overloaded function found +ERROR: 0:269: 'ddy_coarse' : no matching overloaded function found +ERROR: 0:269: 'ddy_fine' : no matching overloaded function found +ERROR: 0:269: 'EvaluateAttributeAtCentroid' : no matching overloaded function found +ERROR: 0:269: 'EvaluateAttributeAtSample' : no matching overloaded function found +ERROR: 0:269: 'EvaluateAttributeSnapped' : no matching overloaded function found +ERROR: 0:269: 'f16tof32' : no matching overloaded function found +ERROR: 0:269: 'firstbithigh' : no matching overloaded function found +ERROR: 0:269: 'firstbitlow' : no matching overloaded function found +ERROR: 0:269: 'fwidth' : no matching overloaded function found +ERROR: 0:269: 'noise' : no matching overloaded function found +ERROR: 0:269: 'reversebits' : no matching overloaded function found +ERROR: 0:269: 'length' : no matching overloaded function found +ERROR: 0:269: 'noise' : no matching overloaded function found +ERROR: 0:269: 'normalize' : no matching overloaded function found +ERROR: 0:269: 'reflect' : no matching overloaded function found +ERROR: 0:269: 'refract' : no matching overloaded function found +ERROR: 0:269: 'reversebits' : no matching overloaded function found +ERROR: 226 compilation errors. No code generated. Shader version: 450 ERROR: node is still EOpNull! -0:74 Function Definition: VertexShaderFunction(f1;f1;f1;i1; (temp float) +0:74 Function Definition: VertexShaderFunctionS(f1;f1;f1;i1; (global float) 0:15 Function Parameters: 0:15 'inF0' (in float) 0:15 'inF1' (in float) @@ -292,8 +285,6 @@ ERROR: node is still EOpNull! 0:40 0.000000 0:41 Constant: 0:41 0.000000 -0:42 Constant: -0:42 0.000000 0:43 Constant: 0:43 0.000000 0:44 Constant: @@ -347,7 +338,7 @@ ERROR: node is still EOpNull! 0:71 Branch: Return with expression 0:71 Constant: 0:71 0.000000 -0:83 Function Definition: VertexShaderFunction(vf1;vf1;vf1;vi1; (temp 1-component vector of float) +0:83 Function Definition: VertexShaderFunction1(vf1;vf1;vf1;vi1; (global 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) @@ -359,7 +350,7 @@ ERROR: node is still EOpNull! 0:80 Branch: Return with expression 0:80 Constant: 0:80 0.000000 -0:130 Function Definition: VertexShaderFunction(vf2;vf2;vf2;vi2; (temp 2-component vector of float) +0:130 Function Definition: VertexShaderFunction2(vf2;vf2;vf2;vi2; (global 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) @@ -402,8 +393,6 @@ ERROR: node is still EOpNull! 0:103 0.000000 0:104 Constant: 0:104 0.000000 -0:105 Constant: -0:105 0.000000 0:106 Constant: 0:106 0.000000 0:107 Constant: @@ -444,7 +433,7 @@ ERROR: node is still EOpNull! 0:? Constant: 0:? 1.000000 0:? 2.000000 -0:175 Function Definition: VertexShaderFunction(vf3;vf3;vf3;vi3; (temp 3-component vector of float) +0:175 Function Definition: VertexShaderFunction3(vf3;vf3;vf3;vi3; (global 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) @@ -483,8 +472,6 @@ ERROR: node is still EOpNull! 0:148 0.000000 0:149 Constant: 0:149 0.000000 -0:150 Constant: -0:150 0.000000 0:151 Constant: 0:151 0.000000 0:152 Constant: @@ -526,7 +513,7 @@ ERROR: node is still EOpNull! 0:? 1.000000 0:? 2.000000 0:? 3.000000 -0:251 Function Definition: VertexShaderFunction(vf4;vf4;vf4;vi4; (temp 4-component vector of float) +0:250 Function Definition: VertexShaderFunction(vf4;vf4;vf4;vi4; (global 4-component vector of float) 0:176 Function Parameters: 0:176 'inF0' (in 4-component vector of float) 0:176 'inF1' (in 4-component vector of float) @@ -565,8 +552,6 @@ ERROR: node is still EOpNull! 0:193 0.000000 0:194 Constant: 0:194 0.000000 -0:195 Constant: -0:195 0.000000 0:196 Constant: 0:196 0.000000 0:197 Constant: @@ -609,125 +594,121 @@ ERROR: node is still EOpNull! 0:? 2.000000 0:? 3.000000 0:? 4.000000 -0:259 Function Definition: VertexShaderFunction(mf22;mf22;mf22; (temp 2X2 matrix of float) -0:252 Function Parameters: -0:252 'inF0' (in 2X2 matrix of float) -0:252 'inF1' (in 2X2 matrix of float) -0:252 'inF2' (in 2X2 matrix of float) +0:258 Function Definition: VertexShaderFunction2x2(mf22;mf22;mf22; (global 2X2 matrix of float) +0:251 Function Parameters: +0:251 'inF0' (in 2X2 matrix of float) +0:251 'inF1' (in 2X2 matrix of float) +0:251 'inF2' (in 2X2 matrix of float) 0:? Sequence -0:254 Constant: -0:254 0.000000 -0:254 Constant: -0:254 0.000000 -0:254 Constant: -0:254 0.000000 -0:254 Constant: -0:254 0.000000 -0:254 Constant: -0:254 0.000000 -0:254 Constant: -0:254 0.000000 -0:254 Constant: -0:254 0.000000 -0:254 Constant: -0:254 0.000000 -0:254 Constant: -0:254 0.000000 -0:254 Constant: -0:254 0.000000 -0:254 Constant: -0:254 0.000000 -0:254 Constant: -0:254 0.000000 -0:254 Constant: -0:254 0.000000 -0:254 Constant: -0:254 0.000000 -0:254 Constant: -0:254 0.000000 -0:254 Constant: -0:254 0.000000 -0:254 Constant: -0:254 0.000000 -0:254 Constant: -0:254 0.000000 -0:254 Constant: -0:254 0.000000 -0:254 Constant: -0:254 0.000000 -0:254 Constant: -0:254 0.000000 -0:254 Constant: -0:254 0.000000 -0:254 Constant: -0:254 0.000000 -0:254 Constant: -0:254 0.000000 -0:254 Constant: -0:254 0.000000 -0:256 Branch: Return with expression +0:253 Constant: +0:253 0.000000 +0:253 Constant: +0:253 0.000000 +0:253 Constant: +0:253 0.000000 +0:253 Constant: +0:253 0.000000 +0:253 Constant: +0:253 0.000000 +0:253 Constant: +0:253 0.000000 +0:253 Constant: +0:253 0.000000 +0:253 Constant: +0:253 0.000000 +0:253 Constant: +0:253 0.000000 +0:253 Constant: +0:253 0.000000 +0:253 Constant: +0:253 0.000000 +0:253 Constant: +0:253 0.000000 +0:253 Constant: +0:253 0.000000 +0:253 Constant: +0:253 0.000000 +0:253 Constant: +0:253 0.000000 +0:253 Constant: +0:253 0.000000 +0:253 Constant: +0:253 0.000000 +0:253 Constant: +0:253 0.000000 +0:253 Constant: +0:253 0.000000 +0:253 Constant: +0:253 0.000000 +0:253 Constant: +0:253 0.000000 +0:253 Constant: +0:253 0.000000 +0:253 Constant: +0:253 0.000000 +0:253 Constant: +0:253 0.000000 +0:255 Branch: Return with expression 0:? Constant: 0:? 2.000000 0:? 2.000000 0:? 2.000000 0:? 2.000000 -0:267 Function Definition: VertexShaderFunction(mf33;mf33;mf33; (temp 3X3 matrix of float) -0:260 Function Parameters: -0:260 'inF0' (in 3X3 matrix of float) -0:260 'inF1' (in 3X3 matrix of float) -0:260 'inF2' (in 3X3 matrix of float) +0:266 Function Definition: VertexShaderFunction3x3(mf33;mf33;mf33; (global 3X3 matrix of float) +0:259 Function Parameters: +0:259 'inF0' (in 3X3 matrix of float) +0:259 'inF1' (in 3X3 matrix of float) +0:259 'inF2' (in 3X3 matrix of float) 0:? Sequence -0:262 Constant: -0:262 0.000000 -0:262 Constant: -0:262 0.000000 -0:262 Constant: -0:262 0.000000 -0:262 Constant: -0:262 0.000000 -0:262 Constant: -0:262 0.000000 -0:262 Constant: -0:262 0.000000 -0:262 Constant: -0:262 0.000000 -0:262 Constant: -0:262 0.000000 -0:262 Constant: -0:262 0.000000 -0:262 Constant: -0:262 0.000000 -0:262 Constant: -0:262 0.000000 -0:262 Constant: -0:262 0.000000 -0:262 Constant: -0:262 0.000000 -0:262 Constant: -0:262 0.000000 -0:262 Constant: -0:262 0.000000 -0:262 Constant: -0:262 0.000000 -0:262 Constant: -0:262 0.000000 -0:262 Constant: -0:262 0.000000 -0:262 Constant: -0:262 0.000000 -0:262 Constant: -0:262 0.000000 -0:262 Constant: -0:262 0.000000 -0:262 Constant: -0:262 0.000000 -0:262 Constant: -0:262 0.000000 -0:262 Constant: -0:262 0.000000 -0:262 Constant: -0:262 0.000000 -0:264 Branch: Return with expression +0:261 Constant: +0:261 0.000000 +0:261 Constant: +0:261 0.000000 +0:261 Constant: +0:261 0.000000 +0:261 Constant: +0:261 0.000000 +0:261 Constant: +0:261 0.000000 +0:261 Constant: +0:261 0.000000 +0:261 Constant: +0:261 0.000000 +0:261 Constant: +0:261 0.000000 +0:261 Constant: +0:261 0.000000 +0:261 Constant: +0:261 0.000000 +0:261 Constant: +0:261 0.000000 +0:261 Constant: +0:261 0.000000 +0:261 Constant: +0:261 0.000000 +0:261 Constant: +0:261 0.000000 +0:261 Constant: +0:261 0.000000 +0:261 Constant: +0:261 0.000000 +0:261 Constant: +0:261 0.000000 +0:261 Constant: +0:261 0.000000 +0:261 Constant: +0:261 0.000000 +0:261 Constant: +0:261 0.000000 +0:261 Constant: +0:261 0.000000 +0:261 Constant: +0:261 0.000000 +0:261 Constant: +0:261 0.000000 +0:261 Constant: +0:261 0.000000 +0:263 Branch: Return with expression 0:? Constant: 0:? 3.000000 0:? 3.000000 @@ -738,63 +719,61 @@ ERROR: node is still EOpNull! 0:? 3.000000 0:? 3.000000 0:? 3.000000 -0:274 Function Definition: VertexShaderFunction(mf44;mf44;mf44; (temp 4X4 matrix of float) -0:268 Function Parameters: -0:268 'inF0' (in 4X4 matrix of float) -0:268 'inF1' (in 4X4 matrix of float) -0:268 'inF2' (in 4X4 matrix of float) +0:273 Function Definition: VertexShaderFunction4x4(mf44;mf44;mf44; (global 4X4 matrix of float) +0:267 Function Parameters: +0:267 'inF0' (in 4X4 matrix of float) +0:267 'inF1' (in 4X4 matrix of float) +0:267 'inF2' (in 4X4 matrix of float) 0:? Sequence -0:270 Constant: -0:270 0.000000 -0:270 Constant: -0:270 0.000000 -0:270 Constant: -0:270 0.000000 -0:270 Constant: -0:270 0.000000 -0:270 Constant: -0:270 0.000000 -0:270 Constant: -0:270 0.000000 -0:270 Constant: -0:270 0.000000 -0:270 Constant: -0:270 0.000000 -0:270 Constant: -0:270 0.000000 -0:270 Constant: -0:270 0.000000 -0:270 Constant: -0:270 0.000000 -0:270 Constant: -0:270 0.000000 -0:270 Constant: -0:270 0.000000 -0:270 Constant: -0:270 0.000000 -0:270 Constant: -0:270 0.000000 -0:270 Constant: -0:270 0.000000 -0:270 Constant: -0:270 0.000000 -0:270 Constant: -0:270 0.000000 -0:270 Constant: -0:270 0.000000 -0:270 Constant: -0:270 0.000000 -0:270 Constant: -0:270 0.000000 -0:270 Constant: -0:270 0.000000 -0:270 Constant: -0:270 0.000000 -0:270 Constant: -0:270 0.000000 -0:270 Constant: -0:270 0.000000 -0:272 Branch: Return with expression +0:269 Constant: +0:269 0.000000 +0:269 Constant: +0:269 0.000000 +0:269 Constant: +0:269 0.000000 +0:269 Constant: +0:269 0.000000 +0:269 Constant: +0:269 0.000000 +0:269 Constant: +0:269 0.000000 +0:269 Constant: +0:269 0.000000 +0:269 Constant: +0:269 0.000000 +0:269 Constant: +0:269 0.000000 +0:269 Constant: +0:269 0.000000 +0:269 Constant: +0:269 0.000000 +0:269 Constant: +0:269 0.000000 +0:269 Constant: +0:269 0.000000 +0:269 Constant: +0:269 0.000000 +0:269 Constant: +0:269 0.000000 +0:269 Constant: +0:269 0.000000 +0:269 Constant: +0:269 0.000000 +0:269 Constant: +0:269 0.000000 +0:269 Constant: +0:269 0.000000 +0:269 Constant: +0:269 0.000000 +0:269 Constant: +0:269 0.000000 +0:269 Constant: +0:269 0.000000 +0:269 Constant: +0:269 0.000000 +0:269 Constant: +0:269 0.000000 +0:271 Branch: Return with expression 0:? Constant: 0:? 4.000000 0:? 4.000000 @@ -813,18 +792,18 @@ ERROR: node is still EOpNull! 0:? 4.000000 0:? 4.000000 0:? Linker Objects -0:? 'gs_ua' (temp uint) -0:? 'gs_ub' (temp uint) -0:? 'gs_uc' (temp uint) -0:? 'gs_ua2' (temp 2-component vector of uint) -0:? 'gs_ub2' (temp 2-component vector of uint) -0:? 'gs_uc2' (temp 2-component vector of uint) -0:? 'gs_ua3' (temp 3-component vector of uint) -0:? 'gs_ub3' (temp 3-component vector of uint) -0:? 'gs_uc3' (temp 3-component vector of uint) -0:? 'gs_ua4' (temp 4-component vector of uint) -0:? 'gs_ub4' (temp 4-component vector of uint) -0:? 'gs_uc4' (temp 4-component vector of uint) +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) Linked vertex stage: @@ -832,7 +811,7 @@ Linked vertex stage: Shader version: 450 ERROR: node is still EOpNull! -0:74 Function Definition: VertexShaderFunction(f1;f1;f1;i1; (temp float) +0:74 Function Definition: VertexShaderFunctionS(f1;f1;f1;i1; (global float) 0:15 Function Parameters: 0:15 'inF0' (in float) 0:15 'inF1' (in float) @@ -887,8 +866,6 @@ ERROR: node is still EOpNull! 0:40 0.000000 0:41 Constant: 0:41 0.000000 -0:42 Constant: -0:42 0.000000 0:43 Constant: 0:43 0.000000 0:44 Constant: @@ -942,7 +919,7 @@ ERROR: node is still EOpNull! 0:71 Branch: Return with expression 0:71 Constant: 0:71 0.000000 -0:83 Function Definition: VertexShaderFunction(vf1;vf1;vf1;vi1; (temp 1-component vector of float) +0:83 Function Definition: VertexShaderFunction1(vf1;vf1;vf1;vi1; (global 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) @@ -954,7 +931,7 @@ ERROR: node is still EOpNull! 0:80 Branch: Return with expression 0:80 Constant: 0:80 0.000000 -0:130 Function Definition: VertexShaderFunction(vf2;vf2;vf2;vi2; (temp 2-component vector of float) +0:130 Function Definition: VertexShaderFunction2(vf2;vf2;vf2;vi2; (global 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) @@ -997,8 +974,6 @@ ERROR: node is still EOpNull! 0:103 0.000000 0:104 Constant: 0:104 0.000000 -0:105 Constant: -0:105 0.000000 0:106 Constant: 0:106 0.000000 0:107 Constant: @@ -1039,7 +1014,7 @@ ERROR: node is still EOpNull! 0:? Constant: 0:? 1.000000 0:? 2.000000 -0:175 Function Definition: VertexShaderFunction(vf3;vf3;vf3;vi3; (temp 3-component vector of float) +0:175 Function Definition: VertexShaderFunction3(vf3;vf3;vf3;vi3; (global 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) @@ -1078,8 +1053,6 @@ ERROR: node is still EOpNull! 0:148 0.000000 0:149 Constant: 0:149 0.000000 -0:150 Constant: -0:150 0.000000 0:151 Constant: 0:151 0.000000 0:152 Constant: @@ -1121,7 +1094,7 @@ ERROR: node is still EOpNull! 0:? 1.000000 0:? 2.000000 0:? 3.000000 -0:251 Function Definition: VertexShaderFunction(vf4;vf4;vf4;vi4; (temp 4-component vector of float) +0:250 Function Definition: VertexShaderFunction(vf4;vf4;vf4;vi4; (global 4-component vector of float) 0:176 Function Parameters: 0:176 'inF0' (in 4-component vector of float) 0:176 'inF1' (in 4-component vector of float) @@ -1160,8 +1133,6 @@ ERROR: node is still EOpNull! 0:193 0.000000 0:194 Constant: 0:194 0.000000 -0:195 Constant: -0:195 0.000000 0:196 Constant: 0:196 0.000000 0:197 Constant: @@ -1204,125 +1175,121 @@ ERROR: node is still EOpNull! 0:? 2.000000 0:? 3.000000 0:? 4.000000 -0:259 Function Definition: VertexShaderFunction(mf22;mf22;mf22; (temp 2X2 matrix of float) -0:252 Function Parameters: -0:252 'inF0' (in 2X2 matrix of float) -0:252 'inF1' (in 2X2 matrix of float) -0:252 'inF2' (in 2X2 matrix of float) +0:258 Function Definition: VertexShaderFunction2x2(mf22;mf22;mf22; (global 2X2 matrix of float) +0:251 Function Parameters: +0:251 'inF0' (in 2X2 matrix of float) +0:251 'inF1' (in 2X2 matrix of float) +0:251 'inF2' (in 2X2 matrix of float) 0:? Sequence -0:254 Constant: -0:254 0.000000 -0:254 Constant: -0:254 0.000000 -0:254 Constant: -0:254 0.000000 -0:254 Constant: -0:254 0.000000 -0:254 Constant: -0:254 0.000000 -0:254 Constant: -0:254 0.000000 -0:254 Constant: -0:254 0.000000 -0:254 Constant: -0:254 0.000000 -0:254 Constant: -0:254 0.000000 -0:254 Constant: -0:254 0.000000 -0:254 Constant: -0:254 0.000000 -0:254 Constant: -0:254 0.000000 -0:254 Constant: -0:254 0.000000 -0:254 Constant: -0:254 0.000000 -0:254 Constant: -0:254 0.000000 -0:254 Constant: -0:254 0.000000 -0:254 Constant: -0:254 0.000000 -0:254 Constant: -0:254 0.000000 -0:254 Constant: -0:254 0.000000 -0:254 Constant: -0:254 0.000000 -0:254 Constant: -0:254 0.000000 -0:254 Constant: -0:254 0.000000 -0:254 Constant: -0:254 0.000000 -0:254 Constant: -0:254 0.000000 -0:254 Constant: -0:254 0.000000 -0:256 Branch: Return with expression +0:253 Constant: +0:253 0.000000 +0:253 Constant: +0:253 0.000000 +0:253 Constant: +0:253 0.000000 +0:253 Constant: +0:253 0.000000 +0:253 Constant: +0:253 0.000000 +0:253 Constant: +0:253 0.000000 +0:253 Constant: +0:253 0.000000 +0:253 Constant: +0:253 0.000000 +0:253 Constant: +0:253 0.000000 +0:253 Constant: +0:253 0.000000 +0:253 Constant: +0:253 0.000000 +0:253 Constant: +0:253 0.000000 +0:253 Constant: +0:253 0.000000 +0:253 Constant: +0:253 0.000000 +0:253 Constant: +0:253 0.000000 +0:253 Constant: +0:253 0.000000 +0:253 Constant: +0:253 0.000000 +0:253 Constant: +0:253 0.000000 +0:253 Constant: +0:253 0.000000 +0:253 Constant: +0:253 0.000000 +0:253 Constant: +0:253 0.000000 +0:253 Constant: +0:253 0.000000 +0:253 Constant: +0:253 0.000000 +0:253 Constant: +0:253 0.000000 +0:255 Branch: Return with expression 0:? Constant: 0:? 2.000000 0:? 2.000000 0:? 2.000000 0:? 2.000000 -0:267 Function Definition: VertexShaderFunction(mf33;mf33;mf33; (temp 3X3 matrix of float) -0:260 Function Parameters: -0:260 'inF0' (in 3X3 matrix of float) -0:260 'inF1' (in 3X3 matrix of float) -0:260 'inF2' (in 3X3 matrix of float) +0:266 Function Definition: VertexShaderFunction3x3(mf33;mf33;mf33; (global 3X3 matrix of float) +0:259 Function Parameters: +0:259 'inF0' (in 3X3 matrix of float) +0:259 'inF1' (in 3X3 matrix of float) +0:259 'inF2' (in 3X3 matrix of float) 0:? Sequence -0:262 Constant: -0:262 0.000000 -0:262 Constant: -0:262 0.000000 -0:262 Constant: -0:262 0.000000 -0:262 Constant: -0:262 0.000000 -0:262 Constant: -0:262 0.000000 -0:262 Constant: -0:262 0.000000 -0:262 Constant: -0:262 0.000000 -0:262 Constant: -0:262 0.000000 -0:262 Constant: -0:262 0.000000 -0:262 Constant: -0:262 0.000000 -0:262 Constant: -0:262 0.000000 -0:262 Constant: -0:262 0.000000 -0:262 Constant: -0:262 0.000000 -0:262 Constant: -0:262 0.000000 -0:262 Constant: -0:262 0.000000 -0:262 Constant: -0:262 0.000000 -0:262 Constant: -0:262 0.000000 -0:262 Constant: -0:262 0.000000 -0:262 Constant: -0:262 0.000000 -0:262 Constant: -0:262 0.000000 -0:262 Constant: -0:262 0.000000 -0:262 Constant: -0:262 0.000000 -0:262 Constant: -0:262 0.000000 -0:262 Constant: -0:262 0.000000 -0:262 Constant: -0:262 0.000000 -0:264 Branch: Return with expression +0:261 Constant: +0:261 0.000000 +0:261 Constant: +0:261 0.000000 +0:261 Constant: +0:261 0.000000 +0:261 Constant: +0:261 0.000000 +0:261 Constant: +0:261 0.000000 +0:261 Constant: +0:261 0.000000 +0:261 Constant: +0:261 0.000000 +0:261 Constant: +0:261 0.000000 +0:261 Constant: +0:261 0.000000 +0:261 Constant: +0:261 0.000000 +0:261 Constant: +0:261 0.000000 +0:261 Constant: +0:261 0.000000 +0:261 Constant: +0:261 0.000000 +0:261 Constant: +0:261 0.000000 +0:261 Constant: +0:261 0.000000 +0:261 Constant: +0:261 0.000000 +0:261 Constant: +0:261 0.000000 +0:261 Constant: +0:261 0.000000 +0:261 Constant: +0:261 0.000000 +0:261 Constant: +0:261 0.000000 +0:261 Constant: +0:261 0.000000 +0:261 Constant: +0:261 0.000000 +0:261 Constant: +0:261 0.000000 +0:261 Constant: +0:261 0.000000 +0:263 Branch: Return with expression 0:? Constant: 0:? 3.000000 0:? 3.000000 @@ -1333,63 +1300,61 @@ ERROR: node is still EOpNull! 0:? 3.000000 0:? 3.000000 0:? 3.000000 -0:274 Function Definition: VertexShaderFunction(mf44;mf44;mf44; (temp 4X4 matrix of float) -0:268 Function Parameters: -0:268 'inF0' (in 4X4 matrix of float) -0:268 'inF1' (in 4X4 matrix of float) -0:268 'inF2' (in 4X4 matrix of float) +0:273 Function Definition: VertexShaderFunction4x4(mf44;mf44;mf44; (global 4X4 matrix of float) +0:267 Function Parameters: +0:267 'inF0' (in 4X4 matrix of float) +0:267 'inF1' (in 4X4 matrix of float) +0:267 'inF2' (in 4X4 matrix of float) 0:? Sequence -0:270 Constant: -0:270 0.000000 -0:270 Constant: -0:270 0.000000 -0:270 Constant: -0:270 0.000000 -0:270 Constant: -0:270 0.000000 -0:270 Constant: -0:270 0.000000 -0:270 Constant: -0:270 0.000000 -0:270 Constant: -0:270 0.000000 -0:270 Constant: -0:270 0.000000 -0:270 Constant: -0:270 0.000000 -0:270 Constant: -0:270 0.000000 -0:270 Constant: -0:270 0.000000 -0:270 Constant: -0:270 0.000000 -0:270 Constant: -0:270 0.000000 -0:270 Constant: -0:270 0.000000 -0:270 Constant: -0:270 0.000000 -0:270 Constant: -0:270 0.000000 -0:270 Constant: -0:270 0.000000 -0:270 Constant: -0:270 0.000000 -0:270 Constant: -0:270 0.000000 -0:270 Constant: -0:270 0.000000 -0:270 Constant: -0:270 0.000000 -0:270 Constant: -0:270 0.000000 -0:270 Constant: -0:270 0.000000 -0:270 Constant: -0:270 0.000000 -0:270 Constant: -0:270 0.000000 -0:272 Branch: Return with expression +0:269 Constant: +0:269 0.000000 +0:269 Constant: +0:269 0.000000 +0:269 Constant: +0:269 0.000000 +0:269 Constant: +0:269 0.000000 +0:269 Constant: +0:269 0.000000 +0:269 Constant: +0:269 0.000000 +0:269 Constant: +0:269 0.000000 +0:269 Constant: +0:269 0.000000 +0:269 Constant: +0:269 0.000000 +0:269 Constant: +0:269 0.000000 +0:269 Constant: +0:269 0.000000 +0:269 Constant: +0:269 0.000000 +0:269 Constant: +0:269 0.000000 +0:269 Constant: +0:269 0.000000 +0:269 Constant: +0:269 0.000000 +0:269 Constant: +0:269 0.000000 +0:269 Constant: +0:269 0.000000 +0:269 Constant: +0:269 0.000000 +0:269 Constant: +0:269 0.000000 +0:269 Constant: +0:269 0.000000 +0:269 Constant: +0:269 0.000000 +0:269 Constant: +0:269 0.000000 +0:269 Constant: +0:269 0.000000 +0:269 Constant: +0:269 0.000000 +0:271 Branch: Return with expression 0:? Constant: 0:? 4.000000 0:? 4.000000 @@ -1408,17 +1373,17 @@ ERROR: node is still EOpNull! 0:? 4.000000 0:? 4.000000 0:? Linker Objects -0:? 'gs_ua' (temp uint) -0:? 'gs_ub' (temp uint) -0:? 'gs_uc' (temp uint) -0:? 'gs_ua2' (temp 2-component vector of uint) -0:? 'gs_ub2' (temp 2-component vector of uint) -0:? 'gs_uc2' (temp 2-component vector of uint) -0:? 'gs_ua3' (temp 3-component vector of uint) -0:? 'gs_ub3' (temp 3-component vector of uint) -0:? 'gs_uc3' (temp 3-component vector of uint) -0:? 'gs_ua4' (temp 4-component vector of uint) -0:? 'gs_ub4' (temp 4-component vector of uint) -0:? 'gs_uc4' (temp 4-component vector of uint) +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) SPIR-V is not generated for failed compile or link diff --git a/Test/baseResults/hlsl.intrinsics.vert.out b/Test/baseResults/hlsl.intrinsics.vert.out index d4c9706d..926501e0 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:62 Function Definition: VertexShaderFunction(f1;f1;f1;u1;u1; (temp float) +0:63 Function Definition: VertexShaderFunctionS(f1;f1;f1;u1;u1; (global float) 0:2 Function Parameters: 0:2 'inF0' (in float) 0:2 'inF1' (in float) @@ -72,846 +72,870 @@ Shader version: 450 0:34 ldexp (global float) 0:34 'inF0' (in float) 0:34 'inF1' (in float) -0:35 log (global float) +0:35 mix (global float) 0:35 'inF0' (in float) -0:36 component-wise multiply (temp float) -0:36 log2 (temp float) -0:36 'inF0' (in float) -0:36 Constant: -0:36 0.301030 -0:37 log2 (global float) -0:37 'inF0' (in float) -0:38 max (global float) +0:35 'inF1' (in float) +0:35 'inF2' (in float) +0:36 log (global 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 'inF0' (in float) -0:38 'inF1' (in float) -0:39 min (global float) +0:39 max (global float) 0:39 'inF0' (in float) 0:39 'inF1' (in float) -0:41 pow (global float) -0:41 'inF0' (in float) -0:41 'inF1' (in float) -0:42 radians (global float) +0:40 min (global float) +0:40 'inF0' (in float) +0:40 'inF1' (in float) +0:42 pow (global float) 0:42 'inF0' (in float) -0:43 bitFieldReverse (global uint) -0:43 Constant: -0:43 2 (const uint) -0:44 roundEven (global float) -0:44 'inF0' (in float) -0:45 inverse sqrt (global float) +0:42 'inF1' (in float) +0:43 radians (global float) +0:43 'inF0' (in float) +0:44 bitFieldReverse (global uint) +0:44 Constant: +0:44 2 (const uint) +0:45 roundEven (global float) 0:45 'inF0' (in float) -0:46 clamp (temp float) +0:46 inverse sqrt (global float) 0:46 'inF0' (in float) -0:46 Constant: -0:46 0.000000 -0:46 Constant: -0:46 1.000000 -0:47 Sign (global float) +0:47 clamp (temp float) 0:47 'inF0' (in float) -0:48 sine (global float) +0:47 Constant: +0:47 0.000000 +0:47 Constant: +0:47 1.000000 +0:48 Sign (global float) 0:48 'inF0' (in float) -0:49 Sequence -0:49 move second child to first child (temp float) -0:49 'inF1' (in float) -0:49 sine (temp float) -0:49 'inF0' (in float) -0:49 move second child to first child (temp float) -0:49 'inF2' (in float) -0:49 cosine (temp float) -0:49 'inF0' (in float) -0:50 hyp. sine (global float) -0:50 'inF0' (in float) -0:51 smoothstep (global float) +0:49 sine (global float) +0:49 'inF0' (in float) +0:50 Sequence +0:50 move second child to first child (temp float) +0:50 'inF1' (in float) +0:50 sine (temp float) +0:50 'inF0' (in float) +0:50 move second child to first child (temp float) +0:50 'inF2' (in float) +0:50 cosine (temp float) +0:50 'inF0' (in float) +0:51 hyp. sine (global float) 0:51 'inF0' (in float) -0:51 'inF1' (in float) -0:51 'inF2' (in float) -0:52 sqrt (global float) +0:52 smoothstep (global float) 0:52 'inF0' (in float) -0:53 step (global float) +0:52 'inF1' (in float) +0:52 'inF2' (in float) +0:53 sqrt (global float) 0:53 'inF0' (in float) -0:53 'inF1' (in float) -0:54 tangent (global float) +0:54 step (global float) 0:54 'inF0' (in float) -0:55 hyp. tangent (global float) +0:54 'inF1' (in float) +0:55 tangent (global float) 0:55 'inF0' (in float) -0:57 trunc (global float) -0:57 'inF0' (in float) -0:59 Branch: Return with expression -0:59 Constant: -0:59 0.000000 -0:68 Function Definition: VertexShaderFunction(vf1;vf1;vf1; (temp 1-component vector of float) -0:63 Function Parameters: -0:63 'inF0' (in 1-component vector of float) -0:63 'inF1' (in 1-component vector of float) -0:63 'inF2' (in 1-component vector of float) +0:56 hyp. tangent (global float) +0:56 'inF0' (in float) +0:58 trunc (global float) +0:58 'inF0' (in float) +0:60 Branch: Return with expression +0:60 Constant: +0:60 0.000000 +0:69 Function Definition: VertexShaderFunction1(vf1;vf1;vf1; (global 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) +0:64 'inF2' (in 1-component vector of float) 0:? Sequence -0:65 Branch: Return with expression -0:65 Constant: -0:65 0.000000 -0:137 Function Definition: VertexShaderFunction(vf2;vf2;vf2;vu2;vu2; (temp 2-component vector of float) -0:69 Function Parameters: -0:69 'inF0' (in 2-component vector of float) -0:69 'inF1' (in 2-component vector of float) -0:69 'inF2' (in 2-component vector of float) -0:69 'inU0' (in 2-component vector of uint) -0:69 'inU1' (in 2-component vector of uint) +0:66 Branch: Return with expression +0:66 Constant: +0:66 0.000000 +0:139 Function Definition: VertexShaderFunction2(vf2;vf2;vf2;vu2;vu2; (global 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) +0:70 'inF2' (in 2-component vector of float) +0:70 'inU0' (in 2-component vector of uint) +0:70 'inU1' (in 2-component vector of uint) 0:? Sequence -0:70 all (global bool) -0:70 'inF0' (in 2-component vector of float) -0:71 Absolute value (global 2-component vector of float) +0:71 all (global bool) 0:71 'inF0' (in 2-component vector of float) -0:72 arc cosine (global 2-component vector of float) +0:72 Absolute value (global 2-component vector of float) 0:72 'inF0' (in 2-component vector of float) -0:73 any (global bool) +0:73 arc cosine (global 2-component vector of float) 0:73 'inF0' (in 2-component vector of float) -0:74 arc sine (global 2-component vector of float) +0:74 any (global bool) 0:74 'inF0' (in 2-component vector of float) -0:75 floatBitsToInt (global 2-component vector of int) +0:75 arc sine (global 2-component vector of float) 0:75 'inF0' (in 2-component vector of float) -0:76 floatBitsToUint (global 2-component vector of uint) +0:76 floatBitsToInt (global 2-component vector of int) 0:76 'inF0' (in 2-component vector of float) -0:77 intBitsToFloat (global 2-component vector of float) -0:77 'inU0' (in 2-component vector of uint) -0:79 arc tangent (global 2-component vector of float) -0:79 'inF0' (in 2-component vector of float) +0:77 floatBitsToUint (global 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 'inU0' (in 2-component vector of uint) 0:80 arc tangent (global 2-component vector of float) 0:80 'inF0' (in 2-component vector of float) -0:80 'inF1' (in 2-component vector of float) -0:81 Ceiling (global 2-component vector of float) +0:81 arc tangent (global 2-component vector of float) 0:81 'inF0' (in 2-component vector of float) -0:82 clamp (global 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 'inF0' (in 2-component vector of float) -0:82 'inF1' (in 2-component vector of float) -0:82 'inF2' (in 2-component vector of float) -0:83 cosine (global 2-component vector of float) +0:83 clamp (global 2-component vector of float) 0:83 'inF0' (in 2-component vector of float) -0:84 hyp. cosine (global 2-component vector of float) +0: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 'inF0' (in 2-component vector of float) +0:85 hyp. cosine (global 2-component vector of float) +0:85 'inF0' (in 2-component vector of float) 0:? bitCount (global 2-component vector of uint) 0:? Constant: 0:? 7 (const uint) 0:? 3 (const uint) -0:86 degrees (global 2-component vector of float) -0:86 'inF0' (in 2-component vector of float) -0:87 distance (global float) +0:87 degrees (global 2-component vector of float) 0:87 'inF0' (in 2-component vector of float) -0:87 'inF1' (in 2-component vector of float) -0:88 dot-product (global float) +0:88 distance (global float) 0:88 'inF0' (in 2-component vector of float) 0:88 'inF1' (in 2-component vector of float) -0:92 exp (global 2-component vector of float) -0:92 'inF0' (in 2-component vector of float) -0:93 exp2 (global 2-component vector of float) +0:89 dot-product (global 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 'inF0' (in 2-component vector of float) -0:94 face-forward (global 2-component vector of float) +0:94 exp2 (global 2-component vector of float) 0:94 'inF0' (in 2-component vector of float) -0:94 'inF1' (in 2-component vector of float) -0:94 'inF2' (in 2-component vector of float) -0:95 findMSB (global int) -0:95 Constant: -0:95 7 (const int) -0:96 findLSB (global int) +0:95 face-forward (global 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 Constant: 0:96 7 (const int) -0:97 Floor (global 2-component vector of float) -0:97 'inF0' (in 2-component vector of float) -0:99 mod (global 2-component vector of float) -0:99 'inF0' (in 2-component vector of float) -0:99 'inF1' (in 2-component vector of float) -0:100 Fraction (global 2-component vector of float) +0:97 findLSB (global int) +0:97 Constant: +0:97 7 (const int) +0:98 Floor (global 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 'inF0' (in 2-component vector of float) -0:101 frexp (global 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 'inF0' (in 2-component vector of float) -0:101 'inF1' (in 2-component vector of float) -0:102 isinf (global 2-component vector of bool) +0:102 frexp (global 2-component vector of float) 0:102 'inF0' (in 2-component vector of float) -0:103 isnan (global 2-component vector of bool) +0:102 'inF1' (in 2-component vector of float) +0:103 isinf (global 2-component vector of bool) 0:103 'inF0' (in 2-component vector of float) -0:104 ldexp (global 2-component vector of float) +0:104 isnan (global 2-component vector of bool) 0:104 'inF0' (in 2-component vector of float) -0:104 'inF1' (in 2-component vector of float) -0:105 length (global float) +0:105 ldexp (global 2-component vector of float) 0:105 'inF0' (in 2-component vector of float) -0:106 log (global 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 'inF0' (in 2-component vector of float) -0:107 vector-scale (temp 2-component vector of float) -0:107 log2 (temp 2-component vector of float) -0:107 'inF0' (in 2-component vector of float) -0:107 Constant: -0:107 0.301030 -0:108 log2 (global 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 'inF0' (in 2-component vector of float) +0:108 log (global 2-component vector of float) 0:108 'inF0' (in 2-component vector of float) -0:109 max (global 2-component vector of float) -0:109 'inF0' (in 2-component vector of float) -0:109 'inF1' (in 2-component vector of float) -0:110 min (global 2-component vector of float) +0: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 'inF0' (in 2-component vector of float) -0:110 'inF1' (in 2-component vector of float) -0:112 normalize (global 2-component vector of float) +0:111 max (global 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 'inF0' (in 2-component vector of float) -0:113 pow (global 2-component vector of float) -0:113 'inF0' (in 2-component vector of float) -0:113 'inF1' (in 2-component vector of float) -0:114 radians (global 2-component vector of float) +0:112 'inF1' (in 2-component vector of float) +0:114 normalize (global 2-component vector of float) 0:114 'inF0' (in 2-component vector of float) -0:115 reflect (global 2-component vector of float) +0:115 pow (global 2-component vector of float) 0:115 'inF0' (in 2-component vector of float) 0:115 'inF1' (in 2-component vector of float) -0:116 refract (global 2-component vector of float) +0:116 radians (global 2-component vector of float) 0:116 'inF0' (in 2-component vector of float) -0:116 'inF1' (in 2-component vector of float) -0:116 Constant: -0:116 2.000000 +0:117 reflect (global 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 '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:? Constant: 0:? 1 (const uint) 0:? 2 (const uint) -0:118 roundEven (global 2-component vector of float) -0:118 'inF0' (in 2-component vector of float) -0:119 inverse sqrt (global 2-component vector of float) -0:119 'inF0' (in 2-component vector of float) -0:120 clamp (temp 2-component vector of float) +0:120 roundEven (global 2-component vector of float) 0:120 'inF0' (in 2-component vector of float) -0:120 Constant: -0:120 0.000000 -0:120 Constant: -0:120 1.000000 -0:121 Sign (global 2-component vector of float) +0:121 inverse sqrt (global 2-component vector of float) 0:121 'inF0' (in 2-component vector of float) -0:122 sine (global 2-component vector of float) +0:122 clamp (temp 2-component vector of float) 0:122 'inF0' (in 2-component vector of float) -0:123 Sequence -0:123 move second child to first child (temp 2-component vector of float) -0:123 'inF1' (in 2-component vector of float) -0:123 sine (temp 2-component vector of float) -0:123 'inF0' (in 2-component vector of float) -0:123 move second child to first child (temp 2-component vector of float) -0:123 'inF2' (in 2-component vector of float) -0:123 cosine (temp 2-component vector of float) -0:123 'inF0' (in 2-component vector of float) -0:124 hyp. sine (global 2-component vector of float) +0:122 Constant: +0:122 0.000000 +0:122 Constant: +0:122 1.000000 +0:123 Sign (global 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 'inF0' (in 2-component vector of float) -0:125 smoothstep (global 2-component vector of float) -0:125 'inF0' (in 2-component vector of float) -0:125 'inF1' (in 2-component vector of float) -0:125 'inF2' (in 2-component vector of float) -0:126 sqrt (global 2-component vector of float) +0:125 Sequence +0:125 move second child to first child (temp 2-component vector of float) +0:125 'inF1' (in 2-component vector of float) +0:125 sine (temp 2-component vector of float) +0:125 'inF0' (in 2-component vector of float) +0:125 move second child to first child (temp 2-component vector of float) +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 'inF0' (in 2-component vector of float) -0:127 step (global 2-component vector of float) +0:127 smoothstep (global 2-component vector of float) 0:127 'inF0' (in 2-component vector of float) 0:127 'inF1' (in 2-component vector of float) -0:128 tangent (global 2-component vector of float) +0:127 'inF2' (in 2-component vector of float) +0:128 sqrt (global 2-component vector of float) 0:128 'inF0' (in 2-component vector of float) -0:129 hyp. tangent (global 2-component vector of float) +0:129 step (global 2-component vector of float) 0:129 'inF0' (in 2-component vector of float) -0:131 trunc (global 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 'inF0' (in 2-component vector of float) +0:131 hyp. tangent (global 2-component vector of float) 0:131 'inF0' (in 2-component vector of float) -0:134 Branch: Return with expression +0:133 trunc (global 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:207 Function Definition: VertexShaderFunction(vf3;vf3;vf3;vu3;vu3; (temp 3-component vector of float) -0:138 Function Parameters: -0:138 'inF0' (in 3-component vector of float) -0:138 'inF1' (in 3-component vector of float) -0:138 'inF2' (in 3-component vector of float) -0:138 'inU0' (in 3-component vector of uint) -0:138 'inU1' (in 3-component vector of uint) +0:210 Function Definition: VertexShaderFunction3(vf3;vf3;vf3;vu3;vu3; (global 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) +0:140 'inF2' (in 3-component vector of float) +0:140 'inU0' (in 3-component vector of uint) +0:140 'inU1' (in 3-component vector of uint) 0:? Sequence -0:139 all (global bool) -0:139 'inF0' (in 3-component vector of float) -0:140 Absolute value (global 3-component vector of float) -0:140 'inF0' (in 3-component vector of float) -0:141 arc cosine (global 3-component vector of float) +0:141 all (global bool) 0:141 'inF0' (in 3-component vector of float) -0:142 any (global bool) +0:142 Absolute value (global 3-component vector of float) 0:142 'inF0' (in 3-component vector of float) -0:143 arc sine (global 3-component vector of float) +0:143 arc cosine (global 3-component vector of float) 0:143 'inF0' (in 3-component vector of float) -0:144 floatBitsToInt (global 3-component vector of int) +0:144 any (global bool) 0:144 'inF0' (in 3-component vector of float) -0:145 floatBitsToUint (global 3-component vector of uint) +0:145 arc sine (global 3-component vector of float) 0:145 'inF0' (in 3-component vector of float) -0:146 intBitsToFloat (global 3-component vector of float) -0:146 'inU0' (in 3-component vector of uint) -0:148 arc tangent (global 3-component vector of float) -0:148 'inF0' (in 3-component vector of float) -0:149 arc tangent (global 3-component vector of float) -0:149 'inF0' (in 3-component vector of float) -0:149 'inF1' (in 3-component vector of float) -0:150 Ceiling (global 3-component vector of float) +0:146 floatBitsToInt (global 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 'inF0' (in 3-component vector of float) +0:148 intBitsToFloat (global 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 'inF0' (in 3-component vector of float) -0:151 clamp (global 3-component vector of float) +0:151 arc tangent (global 3-component vector of float) 0:151 'inF0' (in 3-component vector of float) 0:151 'inF1' (in 3-component vector of float) -0:151 'inF2' (in 3-component vector of float) -0:152 cosine (global 3-component vector of float) +0:152 Ceiling (global 3-component vector of float) 0:152 'inF0' (in 3-component vector of float) -0:153 hyp. cosine (global 3-component vector of float) +0:153 clamp (global 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 'inF0' (in 3-component vector of float) +0:155 hyp. cosine (global 3-component vector of float) +0:155 'inF0' (in 3-component vector of float) 0:? bitCount (global 3-component vector of uint) 0:? Constant: 0:? 7 (const uint) 0:? 3 (const uint) 0:? 5 (const uint) -0:155 cross-product (global 3-component vector of float) -0:155 'inF0' (in 3-component vector of float) -0:155 'inF1' (in 3-component vector of float) -0:156 degrees (global 3-component vector of float) -0:156 'inF0' (in 3-component vector of float) -0:157 distance (global float) +0:157 cross-product (global 3-component vector of float) 0:157 'inF0' (in 3-component vector of float) 0:157 'inF1' (in 3-component vector of float) -0:158 dot-product (global float) +0:158 degrees (global 3-component vector of float) 0:158 'inF0' (in 3-component vector of float) -0:158 'inF1' (in 3-component vector of float) -0:162 exp (global 3-component vector of float) -0:162 'inF0' (in 3-component vector of float) -0:163 exp2 (global 3-component vector of float) -0:163 'inF0' (in 3-component vector of float) -0:164 face-forward (global 3-component vector of float) +0:159 distance (global 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 '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 'inF0' (in 3-component vector of float) -0:164 'inF1' (in 3-component vector of float) -0:164 'inF2' (in 3-component vector of float) -0:165 findMSB (global int) -0:165 Constant: -0:165 7 (const int) -0:166 findLSB (global int) -0:166 Constant: -0:166 7 (const int) -0:167 Floor (global 3-component vector of float) -0:167 'inF0' (in 3-component vector of float) -0:169 mod (global 3-component vector of float) +0:165 exp2 (global 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 '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 Constant: +0:167 7 (const int) +0:168 findLSB (global int) +0:168 Constant: +0:168 7 (const int) +0:169 Floor (global 3-component vector of float) 0:169 'inF0' (in 3-component vector of float) -0:169 'inF1' (in 3-component vector of float) -0:170 Fraction (global 3-component vector of float) -0:170 'inF0' (in 3-component vector of float) -0:171 frexp (global 3-component vector of float) +0:171 mod (global 3-component vector of float) 0:171 'inF0' (in 3-component vector of float) 0:171 'inF1' (in 3-component vector of float) -0:172 isinf (global 3-component vector of bool) +0:172 Fraction (global 3-component vector of float) 0:172 'inF0' (in 3-component vector of float) -0:173 isnan (global 3-component vector of bool) +0:173 frexp (global 3-component vector of float) 0:173 'inF0' (in 3-component vector of float) -0:174 ldexp (global 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 'inF0' (in 3-component vector of float) -0:174 'inF1' (in 3-component vector of float) -0:175 length (global float) +0:175 isnan (global 3-component vector of bool) 0:175 'inF0' (in 3-component vector of float) -0:176 log (global 3-component vector of float) +0:176 ldexp (global 3-component vector of float) 0:176 'inF0' (in 3-component vector of float) -0:177 vector-scale (temp 3-component vector of float) -0:177 log2 (temp 3-component vector of float) -0:177 'inF0' (in 3-component vector of float) -0:177 Constant: -0:177 0.301030 -0:178 log2 (global 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 '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 'inF0' (in 3-component vector of float) -0:179 max (global 3-component vector of float) +0:179 log (global 3-component vector of float) 0:179 'inF0' (in 3-component vector of float) -0:179 'inF1' (in 3-component vector of float) -0:180 min (global 3-component vector of float) -0:180 'inF0' (in 3-component vector of float) -0:180 'inF1' (in 3-component vector of float) -0:182 normalize (global 3-component vector of float) +0: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 'inF0' (in 3-component vector of float) +0:182 max (global 3-component vector of float) 0:182 'inF0' (in 3-component vector of float) -0:183 pow (global 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 'inF0' (in 3-component vector of float) 0:183 'inF1' (in 3-component vector of float) -0:184 radians (global 3-component vector of float) -0:184 'inF0' (in 3-component vector of float) -0:185 reflect (global 3-component vector of float) +0:185 normalize (global 3-component vector of float) 0:185 'inF0' (in 3-component vector of float) -0:185 'inF1' (in 3-component vector of float) -0:186 refract (global 3-component vector of float) +0:186 pow (global 3-component vector of float) 0:186 'inF0' (in 3-component vector of float) 0:186 'inF1' (in 3-component vector of float) -0:186 Constant: -0:186 2.000000 +0:187 radians (global 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 '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 '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:? Constant: 0:? 1 (const uint) 0:? 2 (const uint) 0:? 3 (const uint) -0:188 roundEven (global 3-component vector of float) -0:188 'inF0' (in 3-component vector of float) -0:189 inverse sqrt (global 3-component vector of float) -0:189 'inF0' (in 3-component vector of float) -0:190 clamp (temp 3-component vector of float) -0:190 'inF0' (in 3-component vector of float) -0:190 Constant: -0:190 0.000000 -0:190 Constant: -0:190 1.000000 -0:191 Sign (global 3-component vector of float) +0:191 roundEven (global 3-component vector of float) 0:191 'inF0' (in 3-component vector of float) -0:192 sine (global 3-component vector of float) +0:192 inverse sqrt (global 3-component vector of float) 0:192 'inF0' (in 3-component vector of float) -0:193 Sequence -0:193 move second child to first child (temp 3-component vector of float) -0:193 'inF1' (in 3-component vector of float) -0:193 sine (temp 3-component vector of float) -0:193 'inF0' (in 3-component vector of float) -0:193 move second child to first child (temp 3-component vector of float) -0:193 'inF2' (in 3-component vector of float) -0:193 cosine (temp 3-component vector of float) -0:193 'inF0' (in 3-component vector of float) -0:194 hyp. sine (global 3-component vector of float) +0:193 clamp (temp 3-component vector of float) +0:193 'inF0' (in 3-component vector of float) +0:193 Constant: +0:193 0.000000 +0:193 Constant: +0:193 1.000000 +0:194 Sign (global 3-component vector of float) 0:194 'inF0' (in 3-component vector of float) -0:195 smoothstep (global 3-component vector of float) +0:195 sine (global 3-component vector of float) 0:195 'inF0' (in 3-component vector of float) -0:195 'inF1' (in 3-component vector of float) -0:195 'inF2' (in 3-component vector of float) -0:196 sqrt (global 3-component vector of float) -0:196 'inF0' (in 3-component vector of float) -0:197 step (global 3-component vector of float) +0:196 Sequence +0:196 move second child to first child (temp 3-component vector of float) +0:196 'inF1' (in 3-component vector of float) +0:196 sine (temp 3-component vector of float) +0:196 'inF0' (in 3-component vector of float) +0:196 move second child to first child (temp 3-component vector of float) +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 'inF0' (in 3-component vector of float) -0:197 'inF1' (in 3-component vector of float) -0:198 tangent (global 3-component vector of float) +0:198 smoothstep (global 3-component vector of float) 0:198 'inF0' (in 3-component vector of float) -0:199 hyp. tangent (global 3-component vector of float) +0: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 'inF0' (in 3-component vector of float) -0:201 trunc (global 3-component vector of float) +0:200 step (global 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 'inF0' (in 3-component vector of float) -0:204 Branch: Return with expression +0:202 hyp. tangent (global 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 '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:330 Function Definition: VertexShaderFunction(vf4;vf4;vf4;vu4;vu4; (temp 4-component vector of float) -0:208 Function Parameters: -0:208 'inF0' (in 4-component vector of float) -0:208 'inF1' (in 4-component vector of float) -0:208 'inF2' (in 4-component vector of float) -0:208 'inU0' (in 4-component vector of uint) -0:208 'inU1' (in 4-component vector of uint) +0:335 Function Definition: VertexShaderFunction4(vf4;vf4;vf4;vu4;vu4; (global 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) +0:211 'inF2' (in 4-component vector of float) +0:211 'inU0' (in 4-component vector of uint) +0:211 'inU1' (in 4-component vector of uint) 0:? Sequence -0:209 all (global bool) -0:209 'inF0' (in 4-component vector of float) -0:210 Absolute value (global 4-component vector of float) -0:210 'inF0' (in 4-component vector of float) -0:211 arc cosine (global 4-component vector of float) -0:211 'inF0' (in 4-component vector of float) -0:212 any (global bool) +0:212 all (global bool) 0:212 'inF0' (in 4-component vector of float) -0:213 arc sine (global 4-component vector of float) +0:213 Absolute value (global 4-component vector of float) 0:213 'inF0' (in 4-component vector of float) -0:214 floatBitsToInt (global 4-component vector of int) +0:214 arc cosine (global 4-component vector of float) 0:214 'inF0' (in 4-component vector of float) -0:215 floatBitsToUint (global 4-component vector of uint) +0:215 any (global bool) 0:215 'inF0' (in 4-component vector of float) -0:216 intBitsToFloat (global 4-component vector of float) -0:216 'inU0' (in 4-component vector of uint) -0:218 arc tangent (global 4-component vector of float) +0:216 arc sine (global 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 'inF0' (in 4-component vector of float) +0:218 floatBitsToUint (global 4-component vector of uint) 0:218 'inF0' (in 4-component vector of float) -0:219 arc tangent (global 4-component vector of float) -0:219 'inF0' (in 4-component vector of float) -0:219 'inF1' (in 4-component vector of float) -0:220 Ceiling (global 4-component vector of float) -0:220 'inF0' (in 4-component vector of float) -0:221 clamp (global 4-component vector of float) +0:219 intBitsToFloat (global 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 'inF0' (in 4-component vector of float) -0:221 'inF1' (in 4-component vector of float) -0:221 'inF2' (in 4-component vector of float) -0:222 cosine (global 4-component vector of float) +0:222 arc tangent (global 4-component vector of float) 0:222 'inF0' (in 4-component vector of float) -0:223 hyp. cosine (global 4-component vector of float) +0:222 'inF1' (in 4-component vector of float) +0:223 Ceiling (global 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 '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 'inF0' (in 4-component vector of float) +0:226 hyp. cosine (global 4-component vector of float) +0:226 'inF0' (in 4-component vector of float) 0:? bitCount (global 4-component vector of uint) 0:? Constant: 0:? 7 (const uint) 0:? 3 (const uint) 0:? 5 (const uint) 0:? 2 (const uint) -0:225 degrees (global 4-component vector of float) -0:225 'inF0' (in 4-component vector of float) -0:226 distance (global float) -0:226 'inF0' (in 4-component vector of float) -0:226 'inF1' (in 4-component vector of float) -0:227 dot-product (global float) -0:227 'inF0' (in 4-component vector of float) -0:227 'inF1' (in 4-component vector of float) -0:228 Construct vec4 (temp 4-component vector of float) -0:228 Constant: -0:228 1.000000 -0:228 component-wise multiply (temp float) -0:228 direct index (temp float) -0:228 'inF0' (in 4-component vector of float) -0:228 Constant: -0:228 1 (const int) -0:228 direct index (temp float) -0:228 'inF1' (in 4-component vector of float) -0:228 Constant: -0:228 1 (const int) -0:228 direct index (temp float) -0:228 'inF0' (in 4-component vector of float) -0:228 Constant: -0:228 2 (const int) -0:228 direct index (temp float) -0:228 'inF1' (in 4-component vector of float) -0:228 Constant: -0:228 3 (const int) -0:232 exp (global 4-component vector of float) -0:232 'inF0' (in 4-component vector of float) -0:233 exp2 (global 4-component vector of float) -0:233 'inF0' (in 4-component vector of float) -0:234 face-forward (global 4-component vector of float) -0:234 'inF0' (in 4-component vector of float) -0:234 'inF1' (in 4-component vector of float) -0:234 'inF2' (in 4-component vector of float) -0:235 findMSB (global int) -0:235 Constant: -0:235 7 (const int) -0:236 findLSB (global int) -0:236 Constant: -0:236 7 (const int) -0:237 Floor (global 4-component vector of float) +0:228 degrees (global 4-component vector of float) +0:228 'inF0' (in 4-component vector of float) +0:229 distance (global 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 '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) +0:231 Constant: +0:231 1.000000 +0:231 component-wise multiply (temp float) +0:231 direct index (temp float) +0:231 'inF0' (in 4-component vector of float) +0:231 Constant: +0:231 1 (const int) +0:231 direct index (temp float) +0:231 'inF1' (in 4-component vector of float) +0:231 Constant: +0:231 1 (const int) +0:231 direct index (temp float) +0:231 'inF0' (in 4-component vector of float) +0:231 Constant: +0:231 2 (const int) +0:231 direct index (temp float) +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 'inF0' (in 4-component vector of float) +0:236 exp2 (global 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 'inF0' (in 4-component vector of float) -0:239 mod (global 4-component vector of float) -0:239 'inF0' (in 4-component vector of float) -0:239 'inF1' (in 4-component vector of float) -0:240 Fraction (global 4-component vector of float) +0:237 'inF1' (in 4-component vector of float) +0:237 'inF2' (in 4-component vector of float) +0:238 findMSB (global int) +0:238 Constant: +0:238 7 (const int) +0:239 findLSB (global int) +0:239 Constant: +0:239 7 (const int) +0:240 Floor (global 4-component vector of float) 0:240 'inF0' (in 4-component vector of float) -0:241 frexp (global 4-component vector of float) -0:241 'inF0' (in 4-component vector of float) -0:241 'inF1' (in 4-component vector of float) -0:242 isinf (global 4-component vector of bool) +0:242 mod (global 4-component vector of float) 0:242 'inF0' (in 4-component vector of float) -0:243 isnan (global 4-component vector of bool) +0:242 'inF1' (in 4-component vector of float) +0:243 Fraction (global 4-component vector of float) 0:243 'inF0' (in 4-component vector of float) -0:244 ldexp (global 4-component vector of float) +0:244 frexp (global 4-component vector of float) 0:244 'inF0' (in 4-component vector of float) 0:244 'inF1' (in 4-component vector of float) -0:245 length (global float) +0:245 isinf (global 4-component vector of bool) 0:245 'inF0' (in 4-component vector of float) -0:246 log (global 4-component vector of float) +0:246 isnan (global 4-component vector of bool) 0:246 'inF0' (in 4-component vector of float) -0:247 vector-scale (temp 4-component vector of float) -0:247 log2 (temp 4-component vector of float) -0:247 'inF0' (in 4-component vector of float) -0:247 Constant: -0:247 0.301030 -0:248 log2 (global 4-component vector of float) +0:247 ldexp (global 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 'inF0' (in 4-component vector of float) -0:249 max (global 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 'inF0' (in 4-component vector of float) -0:249 'inF1' (in 4-component vector of float) -0:250 min (global 4-component vector of float) +0:250 log (global 4-component vector of float) 0:250 'inF0' (in 4-component vector of float) -0:250 'inF1' (in 4-component vector of float) -0:252 normalize (global 4-component vector of float) +0: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 'inF0' (in 4-component vector of float) -0:253 pow (global 4-component vector of float) +0:253 max (global 4-component vector of float) 0:253 'inF0' (in 4-component vector of float) 0:253 'inF1' (in 4-component vector of float) -0:254 radians (global 4-component vector of float) +0:254 min (global 4-component vector of float) 0:254 'inF0' (in 4-component vector of float) -0:255 reflect (global 4-component vector of float) -0:255 'inF0' (in 4-component vector of float) -0:255 'inF1' (in 4-component vector of float) -0:256 refract (global 4-component vector of float) +0:254 'inF1' (in 4-component vector of float) +0:256 normalize (global 4-component vector of float) 0:256 'inF0' (in 4-component vector of float) -0:256 'inF1' (in 4-component vector of float) -0:256 Constant: -0:256 2.000000 +0:257 pow (global 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 'inF0' (in 4-component vector of float) +0:259 reflect (global 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 '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:? Constant: 0:? 1 (const uint) 0:? 2 (const uint) 0:? 3 (const uint) 0:? 4 (const uint) -0:258 roundEven (global 4-component vector of float) -0:258 'inF0' (in 4-component vector of float) -0:259 inverse sqrt (global 4-component vector of float) -0:259 'inF0' (in 4-component vector of float) -0:260 clamp (temp 4-component vector of float) -0:260 'inF0' (in 4-component vector of float) -0:260 Constant: -0:260 0.000000 -0:260 Constant: -0:260 1.000000 -0:261 Sign (global 4-component vector of float) -0:261 'inF0' (in 4-component vector of float) -0:262 sine (global 4-component vector of float) +0:262 roundEven (global 4-component vector of float) 0:262 'inF0' (in 4-component vector of float) -0:263 Sequence -0:263 move second child to first child (temp 4-component vector of float) -0:263 'inF1' (in 4-component vector of float) -0:263 sine (temp 4-component vector of float) -0:263 'inF0' (in 4-component vector of float) -0:263 move second child to first child (temp 4-component vector of float) -0:263 'inF2' (in 4-component vector of float) -0:263 cosine (temp 4-component vector of float) -0:263 'inF0' (in 4-component vector of float) -0:264 hyp. sine (global 4-component vector of float) +0:263 inverse sqrt (global 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) -0:265 smoothstep (global 4-component vector of float) +0:264 Constant: +0:264 0.000000 +0:264 Constant: +0:264 1.000000 +0:265 Sign (global 4-component vector of float) 0:265 'inF0' (in 4-component vector of float) -0:265 'inF1' (in 4-component vector of float) -0:265 'inF2' (in 4-component vector of float) -0:266 sqrt (global 4-component vector of float) +0:266 sine (global 4-component vector of float) 0:266 'inF0' (in 4-component vector of float) -0:267 step (global 4-component vector of float) -0:267 'inF0' (in 4-component vector of float) -0:267 'inF1' (in 4-component vector of float) -0:268 tangent (global 4-component vector of float) +0:267 Sequence +0:267 move second child to first child (temp 4-component vector of float) +0:267 'inF1' (in 4-component vector of float) +0:267 sine (temp 4-component vector of float) +0:267 'inF0' (in 4-component vector of float) +0:267 move second child to first child (temp 4-component vector of float) +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 'inF0' (in 4-component vector of float) -0:269 hyp. tangent (global 4-component vector of float) +0:269 smoothstep (global 4-component vector of float) 0:269 'inF0' (in 4-component vector of float) -0:271 trunc (global 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 'inF0' (in 4-component vector of float) +0:271 step (global 4-component vector of float) 0:271 'inF0' (in 4-component vector of float) -0:274 Branch: Return with expression +0:271 'inF1' (in 4-component vector of float) +0:272 tangent (global 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 'inF0' (in 4-component vector of float) +0:275 trunc (global 4-component vector of float) +0:275 'inF0' (in 4-component vector of float) +0:278 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 0:? 4.000000 -0:339 Function Definition: VertexShaderFunction(mf22;mf22;mf22; (temp 2X2 matrix of float) -0:331 Function Parameters: -0:331 'inF0' (in 2X2 matrix of float) -0:331 'inF1' (in 2X2 matrix of float) -0:331 'inF2' (in 2X2 matrix of float) +0:344 Function Definition: VertexShaderFunction2x2(mf22;mf22;mf22; (global 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:333 all (global bool) -0:333 'inF0' (in 2X2 matrix of float) -0:333 Absolute value (global 2X2 matrix of float) -0:333 'inF0' (in 2X2 matrix of float) -0:333 arc cosine (global 2X2 matrix of float) -0:333 'inF0' (in 2X2 matrix of float) -0:333 any (global bool) -0:333 'inF0' (in 2X2 matrix of float) -0:333 arc sine (global 2X2 matrix of float) -0:333 'inF0' (in 2X2 matrix of float) -0:333 arc tangent (global 2X2 matrix of float) -0:333 'inF0' (in 2X2 matrix of float) -0:333 arc tangent (global 2X2 matrix of float) -0:333 'inF0' (in 2X2 matrix of float) -0:333 'inF1' (in 2X2 matrix of float) -0:333 Ceiling (global 2X2 matrix of float) -0:333 'inF0' (in 2X2 matrix of float) -0:333 clamp (global 2X2 matrix of float) -0:333 'inF0' (in 2X2 matrix of float) -0:333 'inF1' (in 2X2 matrix of float) -0:333 'inF2' (in 2X2 matrix of float) -0:333 cosine (global 2X2 matrix of float) -0:333 'inF0' (in 2X2 matrix of float) -0:333 hyp. cosine (global 2X2 matrix of float) -0:333 'inF0' (in 2X2 matrix of float) -0:333 degrees (global 2X2 matrix of float) -0:333 'inF0' (in 2X2 matrix of float) -0:333 determinant (global float) -0:333 'inF0' (in 2X2 matrix of float) -0:333 exp (global 2X2 matrix of float) -0:333 'inF0' (in 2X2 matrix of float) -0:333 exp2 (global 2X2 matrix of float) -0:333 'inF0' (in 2X2 matrix of float) -0:333 findMSB (global int) -0:333 Constant: -0:333 7 (const int) -0:333 findLSB (global int) -0:333 Constant: -0:333 7 (const int) -0:333 Floor (global 2X2 matrix of float) -0:333 'inF0' (in 2X2 matrix of float) -0:333 mod (global 2X2 matrix of float) -0:333 'inF0' (in 2X2 matrix of float) -0:333 'inF1' (in 2X2 matrix of float) -0:333 Fraction (global 2X2 matrix of float) -0:333 'inF0' (in 2X2 matrix of float) -0:333 frexp (global 2X2 matrix of float) -0:333 'inF0' (in 2X2 matrix of float) -0:333 'inF1' (in 2X2 matrix of float) -0:333 ldexp (global 2X2 matrix of float) -0:333 'inF0' (in 2X2 matrix of float) -0:333 'inF1' (in 2X2 matrix of float) -0:333 log (global 2X2 matrix of float) -0:333 'inF0' (in 2X2 matrix of float) -0:333 matrix-scale (temp 2X2 matrix of float) -0:333 log2 (temp 2X2 matrix of float) -0:333 'inF0' (in 2X2 matrix of float) -0:333 Constant: -0:333 0.301030 -0:333 log2 (global 2X2 matrix of float) -0:333 'inF0' (in 2X2 matrix of float) -0:333 max (global 2X2 matrix of float) -0:333 'inF0' (in 2X2 matrix of float) -0:333 'inF1' (in 2X2 matrix of float) -0:333 min (global 2X2 matrix of float) -0:333 'inF0' (in 2X2 matrix of float) -0:333 'inF1' (in 2X2 matrix of float) -0:333 pow (global 2X2 matrix of float) -0:333 'inF0' (in 2X2 matrix of float) -0:333 'inF1' (in 2X2 matrix of float) -0:333 radians (global 2X2 matrix of float) -0:333 'inF0' (in 2X2 matrix of float) -0:333 roundEven (global 2X2 matrix of float) -0:333 'inF0' (in 2X2 matrix of float) -0:333 inverse sqrt (global 2X2 matrix of float) -0:333 'inF0' (in 2X2 matrix of float) -0:333 clamp (temp 2X2 matrix of float) -0:333 'inF0' (in 2X2 matrix of float) -0:333 Constant: -0:333 0.000000 -0:333 Constant: -0:333 1.000000 -0:333 Sign (global 2X2 matrix of float) -0:333 'inF0' (in 2X2 matrix of float) -0:333 sine (global 2X2 matrix of float) -0:333 'inF0' (in 2X2 matrix of float) -0:333 Sequence -0:333 move second child to first child (temp 2X2 matrix of float) -0:333 'inF1' (in 2X2 matrix of float) -0:333 sine (temp 2X2 matrix of float) -0:333 'inF0' (in 2X2 matrix of float) -0:333 move second child to first child (temp 2X2 matrix of float) -0:333 'inF2' (in 2X2 matrix of float) -0:333 cosine (temp 2X2 matrix of float) -0:333 'inF0' (in 2X2 matrix of float) -0:333 hyp. sine (global 2X2 matrix of float) -0:333 'inF0' (in 2X2 matrix of float) -0:333 smoothstep (global 2X2 matrix of float) -0:333 'inF0' (in 2X2 matrix of float) -0:333 'inF1' (in 2X2 matrix of float) -0:333 'inF2' (in 2X2 matrix of float) -0:333 sqrt (global 2X2 matrix of float) -0:333 'inF0' (in 2X2 matrix of float) -0:333 step (global 2X2 matrix of float) -0:333 'inF0' (in 2X2 matrix of float) -0:333 'inF1' (in 2X2 matrix of float) -0:333 tangent (global 2X2 matrix of float) -0:333 'inF0' (in 2X2 matrix of float) -0:333 hyp. tangent (global 2X2 matrix of float) -0:333 'inF0' (in 2X2 matrix of float) -0:333 transpose (global 2X2 matrix of float) -0:333 'inF0' (in 2X2 matrix of float) -0:333 trunc (global 2X2 matrix of float) -0:333 'inF0' (in 2X2 matrix of float) -0:336 Branch: Return with expression +0:338 all (global bool) +0:338 'inF0' (in 2X2 matrix of float) +0:338 Absolute value (global 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 arc cosine (global 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 any (global bool) +0:338 'inF0' (in 2X2 matrix of float) +0:338 arc sine (global 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 arc tangent (global 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 arc tangent (global 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 'inF0' (in 2X2 matrix of float) +0:338 clamp (global 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 'inF0' (in 2X2 matrix of float) +0:338 hyp. cosine (global 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 degrees (global 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 determinant (global float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 exp (global 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 exp2 (global 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 findMSB (global int) +0:338 Constant: +0:338 7 (const int) +0:338 findLSB (global int) +0:338 Constant: +0:338 7 (const int) +0:338 Floor (global 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 mod (global 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 'inF0' (in 2X2 matrix of float) +0:338 frexp (global 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 'inF0' (in 2X2 matrix of float) +0:338 'inF1' (in 2X2 matrix of float) +0:338 mix (global 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 '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 'inF0' (in 2X2 matrix of float) +0:338 max (global 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 'inF0' (in 2X2 matrix of float) +0:338 'inF1' (in 2X2 matrix of float) +0:338 pow (global 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 'inF0' (in 2X2 matrix of float) +0:338 roundEven (global 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 inverse sqrt (global 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) +0:338 Constant: +0:338 0.000000 +0:338 Constant: +0:338 1.000000 +0:338 Sign (global 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 sine (global 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) +0:338 'inF1' (in 2X2 matrix of float) +0:338 sine (temp 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 move second child to first child (temp 2X2 matrix of float) +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 'inF0' (in 2X2 matrix of float) +0:338 smoothstep (global 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 'inF0' (in 2X2 matrix of float) +0:338 step (global 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 'inF0' (in 2X2 matrix of float) +0:338 hyp. tangent (global 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 transpose (global 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 trunc (global 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:341 Branch: Return with expression 0:? Constant: 0:? 2.000000 0:? 2.000000 0:? 2.000000 0:? 2.000000 -0:348 Function Definition: VertexShaderFunction(mf33;mf33;mf33; (temp 3X3 matrix of float) -0:340 Function Parameters: -0:340 'inF0' (in 3X3 matrix of float) -0:340 'inF1' (in 3X3 matrix of float) -0:340 'inF2' (in 3X3 matrix of float) +0:353 Function Definition: VertexShaderFunction3x3(mf33;mf33;mf33; (global 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:342 all (global bool) -0:342 'inF0' (in 3X3 matrix of float) -0:342 Absolute value (global 3X3 matrix of float) -0:342 'inF0' (in 3X3 matrix of float) -0:342 arc cosine (global 3X3 matrix of float) -0:342 'inF0' (in 3X3 matrix of float) -0:342 any (global bool) -0:342 'inF0' (in 3X3 matrix of float) -0:342 arc sine (global 3X3 matrix of float) -0:342 'inF0' (in 3X3 matrix of float) -0:342 arc tangent (global 3X3 matrix of float) -0:342 'inF0' (in 3X3 matrix of float) -0:342 arc tangent (global 3X3 matrix of float) -0:342 'inF0' (in 3X3 matrix of float) -0:342 'inF1' (in 3X3 matrix of float) -0:342 Ceiling (global 3X3 matrix of float) -0:342 'inF0' (in 3X3 matrix of float) -0:342 clamp (global 3X3 matrix of float) -0:342 'inF0' (in 3X3 matrix of float) -0:342 'inF1' (in 3X3 matrix of float) -0:342 'inF2' (in 3X3 matrix of float) -0:342 cosine (global 3X3 matrix of float) -0:342 'inF0' (in 3X3 matrix of float) -0:342 hyp. cosine (global 3X3 matrix of float) -0:342 'inF0' (in 3X3 matrix of float) -0:342 degrees (global 3X3 matrix of float) -0:342 'inF0' (in 3X3 matrix of float) -0:342 determinant (global float) -0:342 'inF0' (in 3X3 matrix of float) -0:342 exp (global 3X3 matrix of float) -0:342 'inF0' (in 3X3 matrix of float) -0:342 exp2 (global 3X3 matrix of float) -0:342 'inF0' (in 3X3 matrix of float) -0:342 findMSB (global int) -0:342 Constant: -0:342 7 (const int) -0:342 findLSB (global int) -0:342 Constant: -0:342 7 (const int) -0:342 Floor (global 3X3 matrix of float) -0:342 'inF0' (in 3X3 matrix of float) -0:342 mod (global 3X3 matrix of float) -0:342 'inF0' (in 3X3 matrix of float) -0:342 'inF1' (in 3X3 matrix of float) -0:342 Fraction (global 3X3 matrix of float) -0:342 'inF0' (in 3X3 matrix of float) -0:342 frexp (global 3X3 matrix of float) -0:342 'inF0' (in 3X3 matrix of float) -0:342 'inF1' (in 3X3 matrix of float) -0:342 ldexp (global 3X3 matrix of float) -0:342 'inF0' (in 3X3 matrix of float) -0:342 'inF1' (in 3X3 matrix of float) -0:342 log (global 3X3 matrix of float) -0:342 'inF0' (in 3X3 matrix of float) -0:342 matrix-scale (temp 3X3 matrix of float) -0:342 log2 (temp 3X3 matrix of float) -0:342 'inF0' (in 3X3 matrix of float) -0:342 Constant: -0:342 0.301030 -0:342 log2 (global 3X3 matrix of float) -0:342 'inF0' (in 3X3 matrix of float) -0:342 max (global 3X3 matrix of float) -0:342 'inF0' (in 3X3 matrix of float) -0:342 'inF1' (in 3X3 matrix of float) -0:342 min (global 3X3 matrix of float) -0:342 'inF0' (in 3X3 matrix of float) -0:342 'inF1' (in 3X3 matrix of float) -0:342 pow (global 3X3 matrix of float) -0:342 'inF0' (in 3X3 matrix of float) -0:342 'inF1' (in 3X3 matrix of float) -0:342 radians (global 3X3 matrix of float) -0:342 'inF0' (in 3X3 matrix of float) -0:342 roundEven (global 3X3 matrix of float) -0:342 'inF0' (in 3X3 matrix of float) -0:342 inverse sqrt (global 3X3 matrix of float) -0:342 'inF0' (in 3X3 matrix of float) -0:342 clamp (temp 3X3 matrix of float) -0:342 'inF0' (in 3X3 matrix of float) -0:342 Constant: -0:342 0.000000 -0:342 Constant: -0:342 1.000000 -0:342 Sign (global 3X3 matrix of float) -0:342 'inF0' (in 3X3 matrix of float) -0:342 sine (global 3X3 matrix of float) -0:342 'inF0' (in 3X3 matrix of float) -0:342 Sequence -0:342 move second child to first child (temp 3X3 matrix of float) -0:342 'inF1' (in 3X3 matrix of float) -0:342 sine (temp 3X3 matrix of float) -0:342 'inF0' (in 3X3 matrix of float) -0:342 move second child to first child (temp 3X3 matrix of float) -0:342 'inF2' (in 3X3 matrix of float) -0:342 cosine (temp 3X3 matrix of float) -0:342 'inF0' (in 3X3 matrix of float) -0:342 hyp. sine (global 3X3 matrix of float) -0:342 'inF0' (in 3X3 matrix of float) -0:342 smoothstep (global 3X3 matrix of float) -0:342 'inF0' (in 3X3 matrix of float) -0:342 'inF1' (in 3X3 matrix of float) -0:342 'inF2' (in 3X3 matrix of float) -0:342 sqrt (global 3X3 matrix of float) -0:342 'inF0' (in 3X3 matrix of float) -0:342 step (global 3X3 matrix of float) -0:342 'inF0' (in 3X3 matrix of float) -0:342 'inF1' (in 3X3 matrix of float) -0:342 tangent (global 3X3 matrix of float) -0:342 'inF0' (in 3X3 matrix of float) -0:342 hyp. tangent (global 3X3 matrix of float) -0:342 'inF0' (in 3X3 matrix of float) -0:342 transpose (global 3X3 matrix of float) -0:342 'inF0' (in 3X3 matrix of float) -0:342 trunc (global 3X3 matrix of float) -0:342 'inF0' (in 3X3 matrix of float) -0:345 Branch: Return with expression +0:347 all (global bool) +0:347 'inF0' (in 3X3 matrix of float) +0:347 Absolute value (global 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 arc cosine (global 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 any (global bool) +0:347 'inF0' (in 3X3 matrix of float) +0:347 arc sine (global 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 arc tangent (global 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 arc tangent (global 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 'inF0' (in 3X3 matrix of float) +0:347 clamp (global 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 'inF0' (in 3X3 matrix of float) +0:347 hyp. cosine (global 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 degrees (global 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 determinant (global float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 exp (global 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 exp2 (global 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 findMSB (global int) +0:347 Constant: +0:347 7 (const int) +0:347 findLSB (global int) +0:347 Constant: +0:347 7 (const int) +0:347 Floor (global 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 mod (global 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 'inF0' (in 3X3 matrix of float) +0:347 frexp (global 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 'inF0' (in 3X3 matrix of float) +0:347 'inF1' (in 3X3 matrix of float) +0:347 mix (global 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 '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 'inF0' (in 3X3 matrix of float) +0:347 max (global 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 'inF0' (in 3X3 matrix of float) +0:347 'inF1' (in 3X3 matrix of float) +0:347 pow (global 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 'inF0' (in 3X3 matrix of float) +0:347 roundEven (global 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 inverse sqrt (global 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) +0:347 Constant: +0:347 0.000000 +0:347 Constant: +0:347 1.000000 +0:347 Sign (global 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 sine (global 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) +0:347 'inF1' (in 3X3 matrix of float) +0:347 sine (temp 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 move second child to first child (temp 3X3 matrix of float) +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 'inF0' (in 3X3 matrix of float) +0:347 smoothstep (global 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 'inF0' (in 3X3 matrix of float) +0:347 step (global 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 'inF0' (in 3X3 matrix of float) +0:347 hyp. tangent (global 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 transpose (global 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 trunc (global 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:350 Branch: Return with expression 0:? Constant: 0:? 3.000000 0:? 3.000000 @@ -922,127 +946,131 @@ Shader version: 450 0:? 3.000000 0:? 3.000000 0:? 3.000000 -0:369 Function Definition: VertexShaderFunction(mf44;mf44;mf44; (temp 4X4 matrix of float) -0:349 Function Parameters: -0:349 'inF0' (in 4X4 matrix of float) -0:349 'inF1' (in 4X4 matrix of float) -0:349 'inF2' (in 4X4 matrix of float) +0:374 Function Definition: VertexShaderFunction4x4(mf44;mf44;mf44; (global 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:351 all (global bool) -0:351 'inF0' (in 4X4 matrix of float) -0:351 Absolute value (global 4X4 matrix of float) -0:351 'inF0' (in 4X4 matrix of float) -0:351 arc cosine (global 4X4 matrix of float) -0:351 'inF0' (in 4X4 matrix of float) -0:351 any (global bool) -0:351 'inF0' (in 4X4 matrix of float) -0:351 arc sine (global 4X4 matrix of float) -0:351 'inF0' (in 4X4 matrix of float) -0:351 arc tangent (global 4X4 matrix of float) -0:351 'inF0' (in 4X4 matrix of float) -0:351 arc tangent (global 4X4 matrix of float) -0:351 'inF0' (in 4X4 matrix of float) -0:351 'inF1' (in 4X4 matrix of float) -0:351 Ceiling (global 4X4 matrix of float) -0:351 'inF0' (in 4X4 matrix of float) -0:351 clamp (global 4X4 matrix of float) -0:351 'inF0' (in 4X4 matrix of float) -0:351 'inF1' (in 4X4 matrix of float) -0:351 'inF2' (in 4X4 matrix of float) -0:351 cosine (global 4X4 matrix of float) -0:351 'inF0' (in 4X4 matrix of float) -0:351 hyp. cosine (global 4X4 matrix of float) -0:351 'inF0' (in 4X4 matrix of float) -0:351 degrees (global 4X4 matrix of float) -0:351 'inF0' (in 4X4 matrix of float) -0:351 determinant (global float) -0:351 'inF0' (in 4X4 matrix of float) -0:351 exp (global 4X4 matrix of float) -0:351 'inF0' (in 4X4 matrix of float) -0:351 exp2 (global 4X4 matrix of float) -0:351 'inF0' (in 4X4 matrix of float) -0:351 findMSB (global int) -0:351 Constant: -0:351 7 (const int) -0:351 findLSB (global int) -0:351 Constant: -0:351 7 (const int) -0:351 Floor (global 4X4 matrix of float) -0:351 'inF0' (in 4X4 matrix of float) -0:351 mod (global 4X4 matrix of float) -0:351 'inF0' (in 4X4 matrix of float) -0:351 'inF1' (in 4X4 matrix of float) -0:351 Fraction (global 4X4 matrix of float) -0:351 'inF0' (in 4X4 matrix of float) -0:351 frexp (global 4X4 matrix of float) -0:351 'inF0' (in 4X4 matrix of float) -0:351 'inF1' (in 4X4 matrix of float) -0:351 ldexp (global 4X4 matrix of float) -0:351 'inF0' (in 4X4 matrix of float) -0:351 'inF1' (in 4X4 matrix of float) -0:351 log (global 4X4 matrix of float) -0:351 'inF0' (in 4X4 matrix of float) -0:351 matrix-scale (temp 4X4 matrix of float) -0:351 log2 (temp 4X4 matrix of float) -0:351 'inF0' (in 4X4 matrix of float) -0:351 Constant: -0:351 0.301030 -0:351 log2 (global 4X4 matrix of float) -0:351 'inF0' (in 4X4 matrix of float) -0:351 max (global 4X4 matrix of float) -0:351 'inF0' (in 4X4 matrix of float) -0:351 'inF1' (in 4X4 matrix of float) -0:351 min (global 4X4 matrix of float) -0:351 'inF0' (in 4X4 matrix of float) -0:351 'inF1' (in 4X4 matrix of float) -0:351 pow (global 4X4 matrix of float) -0:351 'inF0' (in 4X4 matrix of float) -0:351 'inF1' (in 4X4 matrix of float) -0:351 radians (global 4X4 matrix of float) -0:351 'inF0' (in 4X4 matrix of float) -0:351 roundEven (global 4X4 matrix of float) -0:351 'inF0' (in 4X4 matrix of float) -0:351 inverse sqrt (global 4X4 matrix of float) -0:351 'inF0' (in 4X4 matrix of float) -0:351 clamp (temp 4X4 matrix of float) -0:351 'inF0' (in 4X4 matrix of float) -0:351 Constant: -0:351 0.000000 -0:351 Constant: -0:351 1.000000 -0:351 Sign (global 4X4 matrix of float) -0:351 'inF0' (in 4X4 matrix of float) -0:351 sine (global 4X4 matrix of float) -0:351 'inF0' (in 4X4 matrix of float) -0:351 Sequence -0:351 move second child to first child (temp 4X4 matrix of float) -0:351 'inF1' (in 4X4 matrix of float) -0:351 sine (temp 4X4 matrix of float) -0:351 'inF0' (in 4X4 matrix of float) -0:351 move second child to first child (temp 4X4 matrix of float) -0:351 'inF2' (in 4X4 matrix of float) -0:351 cosine (temp 4X4 matrix of float) -0:351 'inF0' (in 4X4 matrix of float) -0:351 hyp. sine (global 4X4 matrix of float) -0:351 'inF0' (in 4X4 matrix of float) -0:351 smoothstep (global 4X4 matrix of float) -0:351 'inF0' (in 4X4 matrix of float) -0:351 'inF1' (in 4X4 matrix of float) -0:351 'inF2' (in 4X4 matrix of float) -0:351 sqrt (global 4X4 matrix of float) -0:351 'inF0' (in 4X4 matrix of float) -0:351 step (global 4X4 matrix of float) -0:351 'inF0' (in 4X4 matrix of float) -0:351 'inF1' (in 4X4 matrix of float) -0:351 tangent (global 4X4 matrix of float) -0:351 'inF0' (in 4X4 matrix of float) -0:351 hyp. tangent (global 4X4 matrix of float) -0:351 'inF0' (in 4X4 matrix of float) -0:351 transpose (global 4X4 matrix of float) -0:351 'inF0' (in 4X4 matrix of float) -0:351 trunc (global 4X4 matrix of float) -0:351 'inF0' (in 4X4 matrix of float) -0:354 Branch: Return with expression +0:356 all (global bool) +0:356 'inF0' (in 4X4 matrix of float) +0:356 Absolute value (global 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 arc cosine (global 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 any (global bool) +0:356 'inF0' (in 4X4 matrix of float) +0:356 arc sine (global 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 arc tangent (global 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 arc tangent (global 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 'inF0' (in 4X4 matrix of float) +0:356 clamp (global 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 'inF0' (in 4X4 matrix of float) +0:356 hyp. cosine (global 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 degrees (global 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 determinant (global float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 exp (global 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 exp2 (global 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 findMSB (global int) +0:356 Constant: +0:356 7 (const int) +0:356 findLSB (global int) +0:356 Constant: +0:356 7 (const int) +0:356 Floor (global 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 mod (global 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 'inF0' (in 4X4 matrix of float) +0:356 frexp (global 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 'inF0' (in 4X4 matrix of float) +0:356 'inF1' (in 4X4 matrix of float) +0:356 mix (global 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 '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 'inF0' (in 4X4 matrix of float) +0:356 max (global 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 'inF0' (in 4X4 matrix of float) +0:356 'inF1' (in 4X4 matrix of float) +0:356 pow (global 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 'inF0' (in 4X4 matrix of float) +0:356 roundEven (global 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 inverse sqrt (global 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) +0:356 Constant: +0:356 0.000000 +0:356 Constant: +0:356 1.000000 +0:356 Sign (global 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 sine (global 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) +0:356 'inF1' (in 4X4 matrix of float) +0:356 sine (temp 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 move second child to first child (temp 4X4 matrix of float) +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 'inF0' (in 4X4 matrix of float) +0:356 smoothstep (global 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 'inF0' (in 4X4 matrix of float) +0:356 step (global 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 'inF0' (in 4X4 matrix of float) +0:356 hyp. tangent (global 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 transpose (global 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 trunc (global 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:359 Branch: Return with expression 0:? Constant: 0:? 4.000000 0:? 4.000000 @@ -1060,168 +1088,309 @@ Shader version: 450 0:? 4.000000 0:? 4.000000 0:? 4.000000 -0:376 Function Definition: TestGenMul(f1;f1;vf2;vf2;mf22;mf22; (temp void) -0:372 Function Parameters: -0:372 'inF0' (in float) -0:372 'inF1' (in float) -0:372 'inFV0' (in 2-component vector of float) -0:372 'inFV1' (in 2-component vector of float) -0:372 'inFM0' (in 2X2 matrix of float) -0:372 'inFM1' (in 2X2 matrix of float) +0:381 Function Definition: TestGenMul2(f1;f1;vf2;vf2;mf22;mf22; (global void) +0:377 Function Parameters: +0:377 'inF0' (in float) +0:377 'inF1' (in float) +0:377 'inFV0' (in 2-component vector of float) +0:377 'inFV1' (in 2-component vector of float) +0:377 'inFM0' (in 2X2 matrix of float) +0:377 'inFM1' (in 2X2 matrix of float) 0:? Sequence -0:373 move second child to first child (temp float) -0:373 'r0' (temp float) -0:373 component-wise multiply (temp float) -0:373 'inF0' (in float) -0:373 'inF1' (in float) -0:373 move second child to first child (temp 2-component vector of float) -0:373 'r1' (temp 2-component vector of float) -0:373 vector-scale (temp 2-component vector of float) -0:373 'inFV0' (in 2-component vector of float) -0:373 'inF0' (in float) -0:373 move second child to first child (temp 2-component vector of float) -0:373 'r2' (temp 2-component vector of float) -0:373 vector-scale (temp 2-component vector of float) -0:373 'inF0' (in float) -0:373 'inFV0' (in 2-component vector of float) -0:373 move second child to first child (temp float) -0:373 'r3' (temp float) -0:373 dot-product (global float) -0:373 'inFV0' (in 2-component vector of float) -0:373 'inFV1' (in 2-component vector of float) -0:373 move second child to first child (temp 2-component vector of float) -0:373 'r4' (temp 2-component vector of float) -0:373 matrix-times-vector (temp 2-component vector of float) -0:373 'inFM0' (in 2X2 matrix of float) -0:373 'inFV0' (in 2-component vector of float) -0:373 move second child to first child (temp 2-component vector of float) -0:373 'r5' (temp 2-component vector of float) -0:373 vector-times-matrix (temp 2-component vector of float) -0:373 'inFV0' (in 2-component vector of float) -0:373 'inFM0' (in 2X2 matrix of float) -0:373 move second child to first child (temp 2X2 matrix of float) -0:373 'r6' (temp 2X2 matrix of float) -0:373 matrix-scale (temp 2X2 matrix of float) -0:373 'inFM0' (in 2X2 matrix of float) -0:373 'inF0' (in float) -0:373 move second child to first child (temp 2X2 matrix of float) -0:373 'r7' (temp 2X2 matrix of float) -0:373 matrix-scale (temp 2X2 matrix of float) -0:373 'inF0' (in float) -0:373 'inFM0' (in 2X2 matrix of float) -0:373 move second child to first child (temp 2X2 matrix of float) -0:373 'r8' (temp 2X2 matrix of float) -0:373 matrix-multiply (temp 2X2 matrix of float) -0:373 'inFM0' (in 2X2 matrix of float) -0:373 'inFM1' (in 2X2 matrix of float) -0:383 Function Definition: TestGenMul(f1;f1;vf3;vf3;mf33;mf33; (temp void) -0:379 Function Parameters: -0:379 'inF0' (in float) -0:379 'inF1' (in float) -0:379 'inFV0' (in 3-component vector of float) -0:379 'inFV1' (in 3-component vector of float) -0:379 'inFM0' (in 3X3 matrix of float) -0:379 'inFM1' (in 3X3 matrix of float) +0:378 Sequence +0:378 move second child to first child (temp float) +0:378 'r0' (temp float) +0:378 component-wise multiply (temp float) +0:378 'inF0' (in float) +0:378 'inF1' (in float) +0:378 Sequence +0:378 move second child to first child (temp 2-component vector of float) +0:378 'r1' (temp 2-component vector of float) +0:378 vector-scale (temp 2-component vector of float) +0:378 'inFV0' (in 2-component vector of float) +0:378 'inF0' (in float) +0:378 Sequence +0:378 move second child to first child (temp 2-component vector of float) +0:378 'r2' (temp 2-component vector of float) +0:378 vector-scale (temp 2-component vector of float) +0:378 'inF0' (in float) +0:378 'inFV0' (in 2-component vector of float) +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 'inFV0' (in 2-component vector of float) +0:378 'inFV1' (in 2-component vector of float) +0:378 Sequence +0:378 move second child to first child (temp 2-component vector of float) +0:378 'r4' (temp 2-component vector of float) +0:378 matrix-times-vector (temp 2-component vector of float) +0:378 'inFM0' (in 2X2 matrix of float) +0:378 'inFV0' (in 2-component vector of float) +0:378 Sequence +0:378 move second child to first child (temp 2-component vector of float) +0:378 'r5' (temp 2-component vector of float) +0:378 vector-times-matrix (temp 2-component vector of float) +0:378 'inFV0' (in 2-component vector of float) +0:378 'inFM0' (in 2X2 matrix of float) +0:378 Sequence +0:378 move second child to first child (temp 2X2 matrix of float) +0:378 'r6' (temp 2X2 matrix of float) +0:378 matrix-scale (temp 2X2 matrix of float) +0:378 'inFM0' (in 2X2 matrix of float) +0:378 'inF0' (in float) +0:378 Sequence +0:378 move second child to first child (temp 2X2 matrix of float) +0:378 'r7' (temp 2X2 matrix of float) +0:378 matrix-scale (temp 2X2 matrix of float) +0:378 'inF0' (in float) +0:378 'inFM0' (in 2X2 matrix of float) +0:378 Sequence +0:378 move second child to first child (temp 2X2 matrix of float) +0:378 'r8' (temp 2X2 matrix of float) +0:378 matrix-multiply (temp 2X2 matrix of float) +0:378 'inFM0' (in 2X2 matrix of float) +0:378 'inFM1' (in 2X2 matrix of float) +0:388 Function Definition: TestGenMul3(f1;f1;vf3;vf3;mf33;mf33; (global void) +0:384 Function Parameters: +0:384 'inF0' (in float) +0:384 'inF1' (in float) +0:384 'inFV0' (in 3-component vector of float) +0:384 'inFV1' (in 3-component vector of float) +0:384 'inFM0' (in 3X3 matrix of float) +0:384 'inFM1' (in 3X3 matrix of float) 0:? Sequence -0:380 move second child to first child (temp float) -0:380 'r0' (temp float) -0:380 component-wise multiply (temp float) -0:380 'inF0' (in float) -0:380 'inF1' (in float) -0:380 move second child to first child (temp 3-component vector of float) -0:380 'r1' (temp 3-component vector of float) -0:380 vector-scale (temp 3-component vector of float) -0:380 'inFV0' (in 3-component vector of float) -0:380 'inF0' (in float) -0:380 move second child to first child (temp 3-component vector of float) -0:380 'r2' (temp 3-component vector of float) -0:380 vector-scale (temp 3-component vector of float) -0:380 'inF0' (in float) -0:380 'inFV0' (in 3-component vector of float) -0:380 move second child to first child (temp float) -0:380 'r3' (temp float) -0:380 dot-product (global float) -0:380 'inFV0' (in 3-component vector of float) -0:380 'inFV1' (in 3-component vector of float) -0:380 move second child to first child (temp 3-component vector of float) -0:380 'r4' (temp 3-component vector of float) -0:380 matrix-times-vector (temp 3-component vector of float) -0:380 'inFM0' (in 3X3 matrix of float) -0:380 'inFV0' (in 3-component vector of float) -0:380 move second child to first child (temp 3-component vector of float) -0:380 'r5' (temp 3-component vector of float) -0:380 vector-times-matrix (temp 3-component vector of float) -0:380 'inFV0' (in 3-component vector of float) -0:380 'inFM0' (in 3X3 matrix of float) -0:380 move second child to first child (temp 3X3 matrix of float) -0:380 'r6' (temp 3X3 matrix of float) -0:380 matrix-scale (temp 3X3 matrix of float) -0:380 'inFM0' (in 3X3 matrix of float) -0:380 'inF0' (in float) -0:380 move second child to first child (temp 3X3 matrix of float) -0:380 'r7' (temp 3X3 matrix of float) -0:380 matrix-scale (temp 3X3 matrix of float) -0:380 'inF0' (in float) -0:380 'inFM0' (in 3X3 matrix of float) -0:380 move second child to first child (temp 3X3 matrix of float) -0:380 'r8' (temp 3X3 matrix of float) -0:380 matrix-multiply (temp 3X3 matrix of float) -0:380 'inFM0' (in 3X3 matrix of float) -0:380 'inFM1' (in 3X3 matrix of float) -0:389 Function Definition: TestGenMul(f1;f1;vf4;vf4;mf44;mf44; (temp void) -0:386 Function Parameters: -0:386 'inF0' (in float) -0:386 'inF1' (in float) -0:386 'inFV0' (in 4-component vector of float) -0:386 'inFV1' (in 4-component vector of float) -0:386 'inFM0' (in 4X4 matrix of float) -0:386 'inFM1' (in 4X4 matrix of float) +0:385 Sequence +0:385 move second child to first child (temp float) +0:385 'r0' (temp float) +0:385 component-wise multiply (temp float) +0:385 'inF0' (in float) +0:385 'inF1' (in float) +0:385 Sequence +0:385 move second child to first child (temp 3-component vector of float) +0:385 'r1' (temp 3-component vector of float) +0:385 vector-scale (temp 3-component vector of float) +0:385 'inFV0' (in 3-component vector of float) +0:385 'inF0' (in float) +0:385 Sequence +0:385 move second child to first child (temp 3-component vector of float) +0:385 'r2' (temp 3-component vector of float) +0:385 vector-scale (temp 3-component vector of float) +0:385 'inF0' (in float) +0:385 'inFV0' (in 3-component vector of float) +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 'inFV0' (in 3-component vector of float) +0:385 'inFV1' (in 3-component vector of float) +0:385 Sequence +0:385 move second child to first child (temp 3-component vector of float) +0:385 'r4' (temp 3-component vector of float) +0:385 matrix-times-vector (temp 3-component vector of float) +0:385 'inFM0' (in 3X3 matrix of float) +0:385 'inFV0' (in 3-component vector of float) +0:385 Sequence +0:385 move second child to first child (temp 3-component vector of float) +0:385 'r5' (temp 3-component vector of float) +0:385 vector-times-matrix (temp 3-component vector of float) +0:385 'inFV0' (in 3-component vector of float) +0:385 'inFM0' (in 3X3 matrix of float) +0:385 Sequence +0:385 move second child to first child (temp 3X3 matrix of float) +0:385 'r6' (temp 3X3 matrix of float) +0:385 matrix-scale (temp 3X3 matrix of float) +0:385 'inFM0' (in 3X3 matrix of float) +0:385 'inF0' (in float) +0:385 Sequence +0:385 move second child to first child (temp 3X3 matrix of float) +0:385 'r7' (temp 3X3 matrix of float) +0:385 matrix-scale (temp 3X3 matrix of float) +0:385 'inF0' (in float) +0:385 'inFM0' (in 3X3 matrix of float) +0:385 Sequence +0:385 move second child to first child (temp 3X3 matrix of float) +0:385 'r8' (temp 3X3 matrix of float) +0:385 matrix-multiply (temp 3X3 matrix of float) +0:385 'inFM0' (in 3X3 matrix of float) +0:385 'inFM1' (in 3X3 matrix of float) +0:396 Function Definition: TestGenMul4(f1;f1;vf4;vf4;mf44;mf44; (global void) +0:391 Function Parameters: +0:391 'inF0' (in float) +0:391 'inF1' (in float) +0:391 'inFV0' (in 4-component vector of float) +0:391 'inFV1' (in 4-component vector of float) +0:391 'inFM0' (in 4X4 matrix of float) +0:391 'inFM1' (in 4X4 matrix of float) 0:? Sequence -0:387 move second child to first child (temp float) -0:387 'r0' (temp float) -0:387 component-wise multiply (temp float) -0:387 'inF0' (in float) -0:387 'inF1' (in float) -0:387 move second child to first child (temp 4-component vector of float) -0:387 'r1' (temp 4-component vector of float) -0:387 vector-scale (temp 4-component vector of float) -0:387 'inFV0' (in 4-component vector of float) -0:387 'inF0' (in float) -0:387 move second child to first child (temp 4-component vector of float) -0:387 'r2' (temp 4-component vector of float) -0:387 vector-scale (temp 4-component vector of float) -0:387 'inF0' (in float) -0:387 'inFV0' (in 4-component vector of float) -0:387 move second child to first child (temp float) -0:387 'r3' (temp float) -0:387 dot-product (global float) -0:387 'inFV0' (in 4-component vector of float) -0:387 'inFV1' (in 4-component vector of float) -0:387 move second child to first child (temp 4-component vector of float) -0:387 'r4' (temp 4-component vector of float) -0:387 matrix-times-vector (temp 4-component vector of float) -0:387 'inFM0' (in 4X4 matrix of float) -0:387 'inFV0' (in 4-component vector of float) -0:387 move second child to first child (temp 4-component vector of float) -0:387 'r5' (temp 4-component vector of float) -0:387 vector-times-matrix (temp 4-component vector of float) -0:387 'inFV0' (in 4-component vector of float) -0:387 'inFM0' (in 4X4 matrix of float) -0:387 move second child to first child (temp 4X4 matrix of float) -0:387 'r6' (temp 4X4 matrix of float) -0:387 matrix-scale (temp 4X4 matrix of float) -0:387 'inFM0' (in 4X4 matrix of float) -0:387 'inF0' (in float) -0:387 move second child to first child (temp 4X4 matrix of float) -0:387 'r7' (temp 4X4 matrix of float) -0:387 matrix-scale (temp 4X4 matrix of float) -0:387 'inF0' (in float) -0:387 'inFM0' (in 4X4 matrix of float) -0:387 move second child to first child (temp 4X4 matrix of float) -0:387 'r8' (temp 4X4 matrix of float) -0:387 matrix-multiply (temp 4X4 matrix of float) -0:387 'inFM0' (in 4X4 matrix of float) -0:387 'inFM1' (in 4X4 matrix of float) +0:392 Sequence +0:392 move second child to first child (temp float) +0:392 'r0' (temp float) +0:392 component-wise multiply (temp float) +0:392 'inF0' (in float) +0:392 'inF1' (in float) +0:392 Sequence +0:392 move second child to first child (temp 4-component vector of float) +0:392 'r1' (temp 4-component vector of float) +0:392 vector-scale (temp 4-component vector of float) +0:392 'inFV0' (in 4-component vector of float) +0:392 'inF0' (in float) +0:392 Sequence +0:392 move second child to first child (temp 4-component vector of float) +0:392 'r2' (temp 4-component vector of float) +0:392 vector-scale (temp 4-component vector of float) +0:392 'inF0' (in float) +0:392 'inFV0' (in 4-component vector of float) +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 'inFV0' (in 4-component vector of float) +0:392 'inFV1' (in 4-component vector of float) +0:392 Sequence +0:392 move second child to first child (temp 4-component vector of float) +0:392 'r4' (temp 4-component vector of float) +0:392 matrix-times-vector (temp 4-component vector of float) +0:392 'inFM0' (in 4X4 matrix of float) +0:392 'inFV0' (in 4-component vector of float) +0:392 Sequence +0:392 move second child to first child (temp 4-component vector of float) +0:392 'r5' (temp 4-component vector of float) +0:392 vector-times-matrix (temp 4-component vector of float) +0:392 'inFV0' (in 4-component vector of float) +0:392 'inFM0' (in 4X4 matrix of float) +0:392 Sequence +0:392 move second child to first child (temp 4X4 matrix of float) +0:392 'r6' (temp 4X4 matrix of float) +0:392 matrix-scale (temp 4X4 matrix of float) +0:392 'inFM0' (in 4X4 matrix of float) +0:392 'inF0' (in float) +0:392 Sequence +0:392 move second child to first child (temp 4X4 matrix of float) +0:392 'r7' (temp 4X4 matrix of float) +0:392 matrix-scale (temp 4X4 matrix of float) +0:392 'inF0' (in float) +0:392 'inFM0' (in 4X4 matrix of float) +0:392 Sequence +0:392 move second child to first child (temp 4X4 matrix of float) +0:392 'r8' (temp 4X4 matrix of float) +0:392 matrix-multiply (temp 4X4 matrix of float) +0:392 'inFM0' (in 4X4 matrix of float) +0:392 'inFM1' (in 4X4 matrix of float) +0:420 Function Definition: TestGenMulNxM(f1;f1;vf2;vf3;mf32;mf23;mf33;mf43;mf42; (global void) +0:401 Function Parameters: +0:401 'inF0' (in float) +0:401 'inF1' (in float) +0:401 'inFV2' (in 2-component vector of float) +0:401 'inFV3' (in 3-component vector of float) +0:401 'inFM2x3' (in 3X2 matrix of float) +0:401 'inFM3x2' (in 2X3 matrix of float) +0:401 'inFM3x3' (in 3X3 matrix of float) +0:401 'inFM3x4' (in 4X3 matrix of float) +0:401 'inFM2x4' (in 4X2 matrix of float) +0:? Sequence +0:402 Sequence +0:402 move second child to first child (temp float) +0:402 'r00' (temp float) +0:402 component-wise multiply (temp float) +0:402 'inF0' (in float) +0:402 'inF1' (in float) +0:403 Sequence +0:403 move second child to first child (temp 2-component vector of float) +0:403 'r01' (temp 2-component vector of float) +0:403 vector-scale (temp 2-component vector of float) +0:403 'inFV2' (in 2-component vector of float) +0:403 'inF0' (in float) +0:404 Sequence +0:404 move second child to first child (temp 3-component vector of float) +0:404 'r02' (temp 3-component vector of float) +0:404 vector-scale (temp 3-component vector of float) +0:404 'inFV3' (in 3-component vector of float) +0:404 'inF0' (in float) +0:405 Sequence +0:405 move second child to first child (temp 2-component vector of float) +0:405 'r03' (temp 2-component vector of float) +0:405 vector-scale (temp 2-component vector of float) +0:405 'inF0' (in float) +0:405 'inFV2' (in 2-component vector of float) +0:406 Sequence +0:406 move second child to first child (temp 3-component vector of float) +0:406 'r04' (temp 3-component vector of float) +0:406 vector-scale (temp 3-component vector of float) +0:406 'inF0' (in float) +0:406 'inFV3' (in 3-component vector of float) +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 '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 'inFV3' (in 3-component vector of float) +0:408 'inFV3' (in 3-component vector of float) +0:409 Sequence +0:409 move second child to first child (temp 3-component vector of float) +0:409 'r07' (temp 3-component vector of float) +0:409 vector-times-matrix (temp 3-component vector of float) +0:409 'inFV2' (in 2-component vector of float) +0:409 'inFM2x3' (in 3X2 matrix of float) +0:410 Sequence +0:410 move second child to first child (temp 2-component vector of float) +0:410 'r08' (temp 2-component vector of float) +0:410 vector-times-matrix (temp 2-component vector of float) +0:410 'inFV3' (in 3-component vector of float) +0:410 'inFM3x2' (in 2X3 matrix of float) +0:411 Sequence +0:411 move second child to first child (temp 2-component vector of float) +0:411 'r09' (temp 2-component vector of float) +0:411 matrix-times-vector (temp 2-component vector of float) +0:411 'inFM2x3' (in 3X2 matrix of float) +0:411 'inFV3' (in 3-component vector of float) +0:412 Sequence +0:412 move second child to first child (temp 3-component vector of float) +0:412 'r10' (temp 3-component vector of float) +0:412 matrix-times-vector (temp 3-component vector of float) +0:412 'inFM3x2' (in 2X3 matrix of float) +0:412 'inFV2' (in 2-component vector of float) +0:413 Sequence +0:413 move second child to first child (temp 3X2 matrix of float) +0:413 'r11' (temp 3X2 matrix of float) +0:413 matrix-scale (temp 3X2 matrix of float) +0:413 'inFM2x3' (in 3X2 matrix of float) +0:413 'inF0' (in float) +0:414 Sequence +0:414 move second child to first child (temp 2X3 matrix of float) +0:414 'r12' (temp 2X3 matrix of float) +0:414 matrix-scale (temp 2X3 matrix of float) +0:414 'inFM3x2' (in 2X3 matrix of float) +0:414 'inF0' (in float) +0:415 Sequence +0:415 move second child to first child (temp 2X2 matrix of float) +0:415 'r13' (temp 2X2 matrix of float) +0:415 matrix-multiply (temp 2X2 matrix of float) +0:415 'inFM2x3' (in 3X2 matrix of float) +0:415 'inFM3x2' (in 2X3 matrix of float) +0:416 Sequence +0:416 move second child to first child (temp 3X2 matrix of float) +0:416 'r14' (temp 3X2 matrix of float) +0:416 matrix-multiply (temp 3X2 matrix of float) +0:416 'inFM2x3' (in 3X2 matrix of float) +0:416 'inFM3x3' (in 3X3 matrix of float) +0:417 Sequence +0:417 move second child to first child (temp 4X2 matrix of float) +0:417 'r15' (temp 4X2 matrix of float) +0:417 matrix-multiply (temp 4X2 matrix of float) +0:417 'inFM2x3' (in 3X2 matrix of float) +0:417 'inFM3x4' (in 4X3 matrix of float) +0:418 Sequence +0:418 move second child to first child (temp 4X3 matrix of float) +0:418 'r16' (temp 4X3 matrix of float) +0:418 matrix-multiply (temp 4X3 matrix of float) +0:418 'inFM3x2' (in 2X3 matrix of float) +0:418 'inFM2x4' (in 4X2 matrix of float) 0:? Linker Objects @@ -1230,7 +1399,7 @@ Linked vertex stage: Shader version: 450 0:? Sequence -0:62 Function Definition: VertexShaderFunction(f1;f1;f1;u1;u1; (temp float) +0:63 Function Definition: VertexShaderFunctionS(f1;f1;f1;u1;u1; (global float) 0:2 Function Parameters: 0:2 'inF0' (in float) 0:2 'inF1' (in float) @@ -1301,846 +1470,870 @@ Shader version: 450 0:34 ldexp (global float) 0:34 'inF0' (in float) 0:34 'inF1' (in float) -0:35 log (global float) +0:35 mix (global float) 0:35 'inF0' (in float) -0:36 component-wise multiply (temp float) -0:36 log2 (temp float) -0:36 'inF0' (in float) -0:36 Constant: -0:36 0.301030 -0:37 log2 (global float) -0:37 'inF0' (in float) -0:38 max (global float) +0:35 'inF1' (in float) +0:35 'inF2' (in float) +0:36 log (global 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 'inF0' (in float) -0:38 'inF1' (in float) -0:39 min (global float) +0:39 max (global float) 0:39 'inF0' (in float) 0:39 'inF1' (in float) -0:41 pow (global float) -0:41 'inF0' (in float) -0:41 'inF1' (in float) -0:42 radians (global float) +0:40 min (global float) +0:40 'inF0' (in float) +0:40 'inF1' (in float) +0:42 pow (global float) 0:42 'inF0' (in float) -0:43 bitFieldReverse (global uint) -0:43 Constant: -0:43 2 (const uint) -0:44 roundEven (global float) -0:44 'inF0' (in float) -0:45 inverse sqrt (global float) +0:42 'inF1' (in float) +0:43 radians (global float) +0:43 'inF0' (in float) +0:44 bitFieldReverse (global uint) +0:44 Constant: +0:44 2 (const uint) +0:45 roundEven (global float) 0:45 'inF0' (in float) -0:46 clamp (temp float) +0:46 inverse sqrt (global float) 0:46 'inF0' (in float) -0:46 Constant: -0:46 0.000000 -0:46 Constant: -0:46 1.000000 -0:47 Sign (global float) +0:47 clamp (temp float) 0:47 'inF0' (in float) -0:48 sine (global float) +0:47 Constant: +0:47 0.000000 +0:47 Constant: +0:47 1.000000 +0:48 Sign (global float) 0:48 'inF0' (in float) -0:49 Sequence -0:49 move second child to first child (temp float) -0:49 'inF1' (in float) -0:49 sine (temp float) -0:49 'inF0' (in float) -0:49 move second child to first child (temp float) -0:49 'inF2' (in float) -0:49 cosine (temp float) -0:49 'inF0' (in float) -0:50 hyp. sine (global float) -0:50 'inF0' (in float) -0:51 smoothstep (global float) +0:49 sine (global float) +0:49 'inF0' (in float) +0:50 Sequence +0:50 move second child to first child (temp float) +0:50 'inF1' (in float) +0:50 sine (temp float) +0:50 'inF0' (in float) +0:50 move second child to first child (temp float) +0:50 'inF2' (in float) +0:50 cosine (temp float) +0:50 'inF0' (in float) +0:51 hyp. sine (global float) 0:51 'inF0' (in float) -0:51 'inF1' (in float) -0:51 'inF2' (in float) -0:52 sqrt (global float) +0:52 smoothstep (global float) 0:52 'inF0' (in float) -0:53 step (global float) +0:52 'inF1' (in float) +0:52 'inF2' (in float) +0:53 sqrt (global float) 0:53 'inF0' (in float) -0:53 'inF1' (in float) -0:54 tangent (global float) +0:54 step (global float) 0:54 'inF0' (in float) -0:55 hyp. tangent (global float) +0:54 'inF1' (in float) +0:55 tangent (global float) 0:55 'inF0' (in float) -0:57 trunc (global float) -0:57 'inF0' (in float) -0:59 Branch: Return with expression -0:59 Constant: -0:59 0.000000 -0:68 Function Definition: VertexShaderFunction(vf1;vf1;vf1; (temp 1-component vector of float) -0:63 Function Parameters: -0:63 'inF0' (in 1-component vector of float) -0:63 'inF1' (in 1-component vector of float) -0:63 'inF2' (in 1-component vector of float) +0:56 hyp. tangent (global float) +0:56 'inF0' (in float) +0:58 trunc (global float) +0:58 'inF0' (in float) +0:60 Branch: Return with expression +0:60 Constant: +0:60 0.000000 +0:69 Function Definition: VertexShaderFunction1(vf1;vf1;vf1; (global 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) +0:64 'inF2' (in 1-component vector of float) 0:? Sequence -0:65 Branch: Return with expression -0:65 Constant: -0:65 0.000000 -0:137 Function Definition: VertexShaderFunction(vf2;vf2;vf2;vu2;vu2; (temp 2-component vector of float) -0:69 Function Parameters: -0:69 'inF0' (in 2-component vector of float) -0:69 'inF1' (in 2-component vector of float) -0:69 'inF2' (in 2-component vector of float) -0:69 'inU0' (in 2-component vector of uint) -0:69 'inU1' (in 2-component vector of uint) +0:66 Branch: Return with expression +0:66 Constant: +0:66 0.000000 +0:139 Function Definition: VertexShaderFunction2(vf2;vf2;vf2;vu2;vu2; (global 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) +0:70 'inF2' (in 2-component vector of float) +0:70 'inU0' (in 2-component vector of uint) +0:70 'inU1' (in 2-component vector of uint) 0:? Sequence -0:70 all (global bool) -0:70 'inF0' (in 2-component vector of float) -0:71 Absolute value (global 2-component vector of float) +0:71 all (global bool) 0:71 'inF0' (in 2-component vector of float) -0:72 arc cosine (global 2-component vector of float) +0:72 Absolute value (global 2-component vector of float) 0:72 'inF0' (in 2-component vector of float) -0:73 any (global bool) +0:73 arc cosine (global 2-component vector of float) 0:73 'inF0' (in 2-component vector of float) -0:74 arc sine (global 2-component vector of float) +0:74 any (global bool) 0:74 'inF0' (in 2-component vector of float) -0:75 floatBitsToInt (global 2-component vector of int) +0:75 arc sine (global 2-component vector of float) 0:75 'inF0' (in 2-component vector of float) -0:76 floatBitsToUint (global 2-component vector of uint) +0:76 floatBitsToInt (global 2-component vector of int) 0:76 'inF0' (in 2-component vector of float) -0:77 intBitsToFloat (global 2-component vector of float) -0:77 'inU0' (in 2-component vector of uint) -0:79 arc tangent (global 2-component vector of float) -0:79 'inF0' (in 2-component vector of float) +0:77 floatBitsToUint (global 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 'inU0' (in 2-component vector of uint) 0:80 arc tangent (global 2-component vector of float) 0:80 'inF0' (in 2-component vector of float) -0:80 'inF1' (in 2-component vector of float) -0:81 Ceiling (global 2-component vector of float) +0:81 arc tangent (global 2-component vector of float) 0:81 'inF0' (in 2-component vector of float) -0:82 clamp (global 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 'inF0' (in 2-component vector of float) -0:82 'inF1' (in 2-component vector of float) -0:82 'inF2' (in 2-component vector of float) -0:83 cosine (global 2-component vector of float) +0:83 clamp (global 2-component vector of float) 0:83 'inF0' (in 2-component vector of float) -0:84 hyp. cosine (global 2-component vector of float) +0: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 'inF0' (in 2-component vector of float) +0:85 hyp. cosine (global 2-component vector of float) +0:85 'inF0' (in 2-component vector of float) 0:? bitCount (global 2-component vector of uint) 0:? Constant: 0:? 7 (const uint) 0:? 3 (const uint) -0:86 degrees (global 2-component vector of float) -0:86 'inF0' (in 2-component vector of float) -0:87 distance (global float) +0:87 degrees (global 2-component vector of float) 0:87 'inF0' (in 2-component vector of float) -0:87 'inF1' (in 2-component vector of float) -0:88 dot-product (global float) +0:88 distance (global float) 0:88 'inF0' (in 2-component vector of float) 0:88 'inF1' (in 2-component vector of float) -0:92 exp (global 2-component vector of float) -0:92 'inF0' (in 2-component vector of float) -0:93 exp2 (global 2-component vector of float) +0:89 dot-product (global 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 'inF0' (in 2-component vector of float) -0:94 face-forward (global 2-component vector of float) +0:94 exp2 (global 2-component vector of float) 0:94 'inF0' (in 2-component vector of float) -0:94 'inF1' (in 2-component vector of float) -0:94 'inF2' (in 2-component vector of float) -0:95 findMSB (global int) -0:95 Constant: -0:95 7 (const int) -0:96 findLSB (global int) +0:95 face-forward (global 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 Constant: 0:96 7 (const int) -0:97 Floor (global 2-component vector of float) -0:97 'inF0' (in 2-component vector of float) -0:99 mod (global 2-component vector of float) -0:99 'inF0' (in 2-component vector of float) -0:99 'inF1' (in 2-component vector of float) -0:100 Fraction (global 2-component vector of float) +0:97 findLSB (global int) +0:97 Constant: +0:97 7 (const int) +0:98 Floor (global 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 'inF0' (in 2-component vector of float) -0:101 frexp (global 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 'inF0' (in 2-component vector of float) -0:101 'inF1' (in 2-component vector of float) -0:102 isinf (global 2-component vector of bool) +0:102 frexp (global 2-component vector of float) 0:102 'inF0' (in 2-component vector of float) -0:103 isnan (global 2-component vector of bool) +0:102 'inF1' (in 2-component vector of float) +0:103 isinf (global 2-component vector of bool) 0:103 'inF0' (in 2-component vector of float) -0:104 ldexp (global 2-component vector of float) +0:104 isnan (global 2-component vector of bool) 0:104 'inF0' (in 2-component vector of float) -0:104 'inF1' (in 2-component vector of float) -0:105 length (global float) +0:105 ldexp (global 2-component vector of float) 0:105 'inF0' (in 2-component vector of float) -0:106 log (global 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 'inF0' (in 2-component vector of float) -0:107 vector-scale (temp 2-component vector of float) -0:107 log2 (temp 2-component vector of float) -0:107 'inF0' (in 2-component vector of float) -0:107 Constant: -0:107 0.301030 -0:108 log2 (global 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 'inF0' (in 2-component vector of float) +0:108 log (global 2-component vector of float) 0:108 'inF0' (in 2-component vector of float) -0:109 max (global 2-component vector of float) -0:109 'inF0' (in 2-component vector of float) -0:109 'inF1' (in 2-component vector of float) -0:110 min (global 2-component vector of float) +0: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 'inF0' (in 2-component vector of float) -0:110 'inF1' (in 2-component vector of float) -0:112 normalize (global 2-component vector of float) +0:111 max (global 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 'inF0' (in 2-component vector of float) -0:113 pow (global 2-component vector of float) -0:113 'inF0' (in 2-component vector of float) -0:113 'inF1' (in 2-component vector of float) -0:114 radians (global 2-component vector of float) +0:112 'inF1' (in 2-component vector of float) +0:114 normalize (global 2-component vector of float) 0:114 'inF0' (in 2-component vector of float) -0:115 reflect (global 2-component vector of float) +0:115 pow (global 2-component vector of float) 0:115 'inF0' (in 2-component vector of float) 0:115 'inF1' (in 2-component vector of float) -0:116 refract (global 2-component vector of float) +0:116 radians (global 2-component vector of float) 0:116 'inF0' (in 2-component vector of float) -0:116 'inF1' (in 2-component vector of float) -0:116 Constant: -0:116 2.000000 +0:117 reflect (global 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 '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:? Constant: 0:? 1 (const uint) 0:? 2 (const uint) -0:118 roundEven (global 2-component vector of float) -0:118 'inF0' (in 2-component vector of float) -0:119 inverse sqrt (global 2-component vector of float) -0:119 'inF0' (in 2-component vector of float) -0:120 clamp (temp 2-component vector of float) +0:120 roundEven (global 2-component vector of float) 0:120 'inF0' (in 2-component vector of float) -0:120 Constant: -0:120 0.000000 -0:120 Constant: -0:120 1.000000 -0:121 Sign (global 2-component vector of float) +0:121 inverse sqrt (global 2-component vector of float) 0:121 'inF0' (in 2-component vector of float) -0:122 sine (global 2-component vector of float) +0:122 clamp (temp 2-component vector of float) 0:122 'inF0' (in 2-component vector of float) -0:123 Sequence -0:123 move second child to first child (temp 2-component vector of float) -0:123 'inF1' (in 2-component vector of float) -0:123 sine (temp 2-component vector of float) -0:123 'inF0' (in 2-component vector of float) -0:123 move second child to first child (temp 2-component vector of float) -0:123 'inF2' (in 2-component vector of float) -0:123 cosine (temp 2-component vector of float) -0:123 'inF0' (in 2-component vector of float) -0:124 hyp. sine (global 2-component vector of float) +0:122 Constant: +0:122 0.000000 +0:122 Constant: +0:122 1.000000 +0:123 Sign (global 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 'inF0' (in 2-component vector of float) -0:125 smoothstep (global 2-component vector of float) -0:125 'inF0' (in 2-component vector of float) -0:125 'inF1' (in 2-component vector of float) -0:125 'inF2' (in 2-component vector of float) -0:126 sqrt (global 2-component vector of float) +0:125 Sequence +0:125 move second child to first child (temp 2-component vector of float) +0:125 'inF1' (in 2-component vector of float) +0:125 sine (temp 2-component vector of float) +0:125 'inF0' (in 2-component vector of float) +0:125 move second child to first child (temp 2-component vector of float) +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 'inF0' (in 2-component vector of float) -0:127 step (global 2-component vector of float) +0:127 smoothstep (global 2-component vector of float) 0:127 'inF0' (in 2-component vector of float) 0:127 'inF1' (in 2-component vector of float) -0:128 tangent (global 2-component vector of float) +0:127 'inF2' (in 2-component vector of float) +0:128 sqrt (global 2-component vector of float) 0:128 'inF0' (in 2-component vector of float) -0:129 hyp. tangent (global 2-component vector of float) +0:129 step (global 2-component vector of float) 0:129 'inF0' (in 2-component vector of float) -0:131 trunc (global 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 'inF0' (in 2-component vector of float) +0:131 hyp. tangent (global 2-component vector of float) 0:131 'inF0' (in 2-component vector of float) -0:134 Branch: Return with expression +0:133 trunc (global 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:207 Function Definition: VertexShaderFunction(vf3;vf3;vf3;vu3;vu3; (temp 3-component vector of float) -0:138 Function Parameters: -0:138 'inF0' (in 3-component vector of float) -0:138 'inF1' (in 3-component vector of float) -0:138 'inF2' (in 3-component vector of float) -0:138 'inU0' (in 3-component vector of uint) -0:138 'inU1' (in 3-component vector of uint) +0:210 Function Definition: VertexShaderFunction3(vf3;vf3;vf3;vu3;vu3; (global 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) +0:140 'inF2' (in 3-component vector of float) +0:140 'inU0' (in 3-component vector of uint) +0:140 'inU1' (in 3-component vector of uint) 0:? Sequence -0:139 all (global bool) -0:139 'inF0' (in 3-component vector of float) -0:140 Absolute value (global 3-component vector of float) -0:140 'inF0' (in 3-component vector of float) -0:141 arc cosine (global 3-component vector of float) +0:141 all (global bool) 0:141 'inF0' (in 3-component vector of float) -0:142 any (global bool) +0:142 Absolute value (global 3-component vector of float) 0:142 'inF0' (in 3-component vector of float) -0:143 arc sine (global 3-component vector of float) +0:143 arc cosine (global 3-component vector of float) 0:143 'inF0' (in 3-component vector of float) -0:144 floatBitsToInt (global 3-component vector of int) +0:144 any (global bool) 0:144 'inF0' (in 3-component vector of float) -0:145 floatBitsToUint (global 3-component vector of uint) +0:145 arc sine (global 3-component vector of float) 0:145 'inF0' (in 3-component vector of float) -0:146 intBitsToFloat (global 3-component vector of float) -0:146 'inU0' (in 3-component vector of uint) -0:148 arc tangent (global 3-component vector of float) -0:148 'inF0' (in 3-component vector of float) -0:149 arc tangent (global 3-component vector of float) -0:149 'inF0' (in 3-component vector of float) -0:149 'inF1' (in 3-component vector of float) -0:150 Ceiling (global 3-component vector of float) +0:146 floatBitsToInt (global 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 'inF0' (in 3-component vector of float) +0:148 intBitsToFloat (global 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 'inF0' (in 3-component vector of float) -0:151 clamp (global 3-component vector of float) +0:151 arc tangent (global 3-component vector of float) 0:151 'inF0' (in 3-component vector of float) 0:151 'inF1' (in 3-component vector of float) -0:151 'inF2' (in 3-component vector of float) -0:152 cosine (global 3-component vector of float) +0:152 Ceiling (global 3-component vector of float) 0:152 'inF0' (in 3-component vector of float) -0:153 hyp. cosine (global 3-component vector of float) +0:153 clamp (global 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 'inF0' (in 3-component vector of float) +0:155 hyp. cosine (global 3-component vector of float) +0:155 'inF0' (in 3-component vector of float) 0:? bitCount (global 3-component vector of uint) 0:? Constant: 0:? 7 (const uint) 0:? 3 (const uint) 0:? 5 (const uint) -0:155 cross-product (global 3-component vector of float) -0:155 'inF0' (in 3-component vector of float) -0:155 'inF1' (in 3-component vector of float) -0:156 degrees (global 3-component vector of float) -0:156 'inF0' (in 3-component vector of float) -0:157 distance (global float) +0:157 cross-product (global 3-component vector of float) 0:157 'inF0' (in 3-component vector of float) 0:157 'inF1' (in 3-component vector of float) -0:158 dot-product (global float) +0:158 degrees (global 3-component vector of float) 0:158 'inF0' (in 3-component vector of float) -0:158 'inF1' (in 3-component vector of float) -0:162 exp (global 3-component vector of float) -0:162 'inF0' (in 3-component vector of float) -0:163 exp2 (global 3-component vector of float) -0:163 'inF0' (in 3-component vector of float) -0:164 face-forward (global 3-component vector of float) +0:159 distance (global 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 '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 'inF0' (in 3-component vector of float) -0:164 'inF1' (in 3-component vector of float) -0:164 'inF2' (in 3-component vector of float) -0:165 findMSB (global int) -0:165 Constant: -0:165 7 (const int) -0:166 findLSB (global int) -0:166 Constant: -0:166 7 (const int) -0:167 Floor (global 3-component vector of float) -0:167 'inF0' (in 3-component vector of float) -0:169 mod (global 3-component vector of float) +0:165 exp2 (global 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 '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 Constant: +0:167 7 (const int) +0:168 findLSB (global int) +0:168 Constant: +0:168 7 (const int) +0:169 Floor (global 3-component vector of float) 0:169 'inF0' (in 3-component vector of float) -0:169 'inF1' (in 3-component vector of float) -0:170 Fraction (global 3-component vector of float) -0:170 'inF0' (in 3-component vector of float) -0:171 frexp (global 3-component vector of float) +0:171 mod (global 3-component vector of float) 0:171 'inF0' (in 3-component vector of float) 0:171 'inF1' (in 3-component vector of float) -0:172 isinf (global 3-component vector of bool) +0:172 Fraction (global 3-component vector of float) 0:172 'inF0' (in 3-component vector of float) -0:173 isnan (global 3-component vector of bool) +0:173 frexp (global 3-component vector of float) 0:173 'inF0' (in 3-component vector of float) -0:174 ldexp (global 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 'inF0' (in 3-component vector of float) -0:174 'inF1' (in 3-component vector of float) -0:175 length (global float) +0:175 isnan (global 3-component vector of bool) 0:175 'inF0' (in 3-component vector of float) -0:176 log (global 3-component vector of float) +0:176 ldexp (global 3-component vector of float) 0:176 'inF0' (in 3-component vector of float) -0:177 vector-scale (temp 3-component vector of float) -0:177 log2 (temp 3-component vector of float) -0:177 'inF0' (in 3-component vector of float) -0:177 Constant: -0:177 0.301030 -0:178 log2 (global 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 '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 'inF0' (in 3-component vector of float) -0:179 max (global 3-component vector of float) +0:179 log (global 3-component vector of float) 0:179 'inF0' (in 3-component vector of float) -0:179 'inF1' (in 3-component vector of float) -0:180 min (global 3-component vector of float) -0:180 'inF0' (in 3-component vector of float) -0:180 'inF1' (in 3-component vector of float) -0:182 normalize (global 3-component vector of float) +0: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 'inF0' (in 3-component vector of float) +0:182 max (global 3-component vector of float) 0:182 'inF0' (in 3-component vector of float) -0:183 pow (global 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 'inF0' (in 3-component vector of float) 0:183 'inF1' (in 3-component vector of float) -0:184 radians (global 3-component vector of float) -0:184 'inF0' (in 3-component vector of float) -0:185 reflect (global 3-component vector of float) +0:185 normalize (global 3-component vector of float) 0:185 'inF0' (in 3-component vector of float) -0:185 'inF1' (in 3-component vector of float) -0:186 refract (global 3-component vector of float) +0:186 pow (global 3-component vector of float) 0:186 'inF0' (in 3-component vector of float) 0:186 'inF1' (in 3-component vector of float) -0:186 Constant: -0:186 2.000000 +0:187 radians (global 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 '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 '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:? Constant: 0:? 1 (const uint) 0:? 2 (const uint) 0:? 3 (const uint) -0:188 roundEven (global 3-component vector of float) -0:188 'inF0' (in 3-component vector of float) -0:189 inverse sqrt (global 3-component vector of float) -0:189 'inF0' (in 3-component vector of float) -0:190 clamp (temp 3-component vector of float) -0:190 'inF0' (in 3-component vector of float) -0:190 Constant: -0:190 0.000000 -0:190 Constant: -0:190 1.000000 -0:191 Sign (global 3-component vector of float) +0:191 roundEven (global 3-component vector of float) 0:191 'inF0' (in 3-component vector of float) -0:192 sine (global 3-component vector of float) +0:192 inverse sqrt (global 3-component vector of float) 0:192 'inF0' (in 3-component vector of float) -0:193 Sequence -0:193 move second child to first child (temp 3-component vector of float) -0:193 'inF1' (in 3-component vector of float) -0:193 sine (temp 3-component vector of float) -0:193 'inF0' (in 3-component vector of float) -0:193 move second child to first child (temp 3-component vector of float) -0:193 'inF2' (in 3-component vector of float) -0:193 cosine (temp 3-component vector of float) -0:193 'inF0' (in 3-component vector of float) -0:194 hyp. sine (global 3-component vector of float) +0:193 clamp (temp 3-component vector of float) +0:193 'inF0' (in 3-component vector of float) +0:193 Constant: +0:193 0.000000 +0:193 Constant: +0:193 1.000000 +0:194 Sign (global 3-component vector of float) 0:194 'inF0' (in 3-component vector of float) -0:195 smoothstep (global 3-component vector of float) +0:195 sine (global 3-component vector of float) 0:195 'inF0' (in 3-component vector of float) -0:195 'inF1' (in 3-component vector of float) -0:195 'inF2' (in 3-component vector of float) -0:196 sqrt (global 3-component vector of float) -0:196 'inF0' (in 3-component vector of float) -0:197 step (global 3-component vector of float) +0:196 Sequence +0:196 move second child to first child (temp 3-component vector of float) +0:196 'inF1' (in 3-component vector of float) +0:196 sine (temp 3-component vector of float) +0:196 'inF0' (in 3-component vector of float) +0:196 move second child to first child (temp 3-component vector of float) +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 'inF0' (in 3-component vector of float) -0:197 'inF1' (in 3-component vector of float) -0:198 tangent (global 3-component vector of float) +0:198 smoothstep (global 3-component vector of float) 0:198 'inF0' (in 3-component vector of float) -0:199 hyp. tangent (global 3-component vector of float) +0: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 'inF0' (in 3-component vector of float) -0:201 trunc (global 3-component vector of float) +0:200 step (global 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 'inF0' (in 3-component vector of float) -0:204 Branch: Return with expression +0:202 hyp. tangent (global 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 '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:330 Function Definition: VertexShaderFunction(vf4;vf4;vf4;vu4;vu4; (temp 4-component vector of float) -0:208 Function Parameters: -0:208 'inF0' (in 4-component vector of float) -0:208 'inF1' (in 4-component vector of float) -0:208 'inF2' (in 4-component vector of float) -0:208 'inU0' (in 4-component vector of uint) -0:208 'inU1' (in 4-component vector of uint) +0:335 Function Definition: VertexShaderFunction4(vf4;vf4;vf4;vu4;vu4; (global 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) +0:211 'inF2' (in 4-component vector of float) +0:211 'inU0' (in 4-component vector of uint) +0:211 'inU1' (in 4-component vector of uint) 0:? Sequence -0:209 all (global bool) -0:209 'inF0' (in 4-component vector of float) -0:210 Absolute value (global 4-component vector of float) -0:210 'inF0' (in 4-component vector of float) -0:211 arc cosine (global 4-component vector of float) -0:211 'inF0' (in 4-component vector of float) -0:212 any (global bool) +0:212 all (global bool) 0:212 'inF0' (in 4-component vector of float) -0:213 arc sine (global 4-component vector of float) +0:213 Absolute value (global 4-component vector of float) 0:213 'inF0' (in 4-component vector of float) -0:214 floatBitsToInt (global 4-component vector of int) +0:214 arc cosine (global 4-component vector of float) 0:214 'inF0' (in 4-component vector of float) -0:215 floatBitsToUint (global 4-component vector of uint) +0:215 any (global bool) 0:215 'inF0' (in 4-component vector of float) -0:216 intBitsToFloat (global 4-component vector of float) -0:216 'inU0' (in 4-component vector of uint) -0:218 arc tangent (global 4-component vector of float) +0:216 arc sine (global 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 'inF0' (in 4-component vector of float) +0:218 floatBitsToUint (global 4-component vector of uint) 0:218 'inF0' (in 4-component vector of float) -0:219 arc tangent (global 4-component vector of float) -0:219 'inF0' (in 4-component vector of float) -0:219 'inF1' (in 4-component vector of float) -0:220 Ceiling (global 4-component vector of float) -0:220 'inF0' (in 4-component vector of float) -0:221 clamp (global 4-component vector of float) +0:219 intBitsToFloat (global 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 'inF0' (in 4-component vector of float) -0:221 'inF1' (in 4-component vector of float) -0:221 'inF2' (in 4-component vector of float) -0:222 cosine (global 4-component vector of float) +0:222 arc tangent (global 4-component vector of float) 0:222 'inF0' (in 4-component vector of float) -0:223 hyp. cosine (global 4-component vector of float) +0:222 'inF1' (in 4-component vector of float) +0:223 Ceiling (global 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 '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 'inF0' (in 4-component vector of float) +0:226 hyp. cosine (global 4-component vector of float) +0:226 'inF0' (in 4-component vector of float) 0:? bitCount (global 4-component vector of uint) 0:? Constant: 0:? 7 (const uint) 0:? 3 (const uint) 0:? 5 (const uint) 0:? 2 (const uint) -0:225 degrees (global 4-component vector of float) -0:225 'inF0' (in 4-component vector of float) -0:226 distance (global float) -0:226 'inF0' (in 4-component vector of float) -0:226 'inF1' (in 4-component vector of float) -0:227 dot-product (global float) -0:227 'inF0' (in 4-component vector of float) -0:227 'inF1' (in 4-component vector of float) -0:228 Construct vec4 (temp 4-component vector of float) -0:228 Constant: -0:228 1.000000 -0:228 component-wise multiply (temp float) -0:228 direct index (temp float) -0:228 'inF0' (in 4-component vector of float) -0:228 Constant: -0:228 1 (const int) -0:228 direct index (temp float) -0:228 'inF1' (in 4-component vector of float) -0:228 Constant: -0:228 1 (const int) -0:228 direct index (temp float) -0:228 'inF0' (in 4-component vector of float) -0:228 Constant: -0:228 2 (const int) -0:228 direct index (temp float) -0:228 'inF1' (in 4-component vector of float) -0:228 Constant: -0:228 3 (const int) -0:232 exp (global 4-component vector of float) -0:232 'inF0' (in 4-component vector of float) -0:233 exp2 (global 4-component vector of float) -0:233 'inF0' (in 4-component vector of float) -0:234 face-forward (global 4-component vector of float) -0:234 'inF0' (in 4-component vector of float) -0:234 'inF1' (in 4-component vector of float) -0:234 'inF2' (in 4-component vector of float) -0:235 findMSB (global int) -0:235 Constant: -0:235 7 (const int) -0:236 findLSB (global int) -0:236 Constant: -0:236 7 (const int) -0:237 Floor (global 4-component vector of float) +0:228 degrees (global 4-component vector of float) +0:228 'inF0' (in 4-component vector of float) +0:229 distance (global 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 '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) +0:231 Constant: +0:231 1.000000 +0:231 component-wise multiply (temp float) +0:231 direct index (temp float) +0:231 'inF0' (in 4-component vector of float) +0:231 Constant: +0:231 1 (const int) +0:231 direct index (temp float) +0:231 'inF1' (in 4-component vector of float) +0:231 Constant: +0:231 1 (const int) +0:231 direct index (temp float) +0:231 'inF0' (in 4-component vector of float) +0:231 Constant: +0:231 2 (const int) +0:231 direct index (temp float) +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 'inF0' (in 4-component vector of float) +0:236 exp2 (global 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 'inF0' (in 4-component vector of float) -0:239 mod (global 4-component vector of float) -0:239 'inF0' (in 4-component vector of float) -0:239 'inF1' (in 4-component vector of float) -0:240 Fraction (global 4-component vector of float) +0:237 'inF1' (in 4-component vector of float) +0:237 'inF2' (in 4-component vector of float) +0:238 findMSB (global int) +0:238 Constant: +0:238 7 (const int) +0:239 findLSB (global int) +0:239 Constant: +0:239 7 (const int) +0:240 Floor (global 4-component vector of float) 0:240 'inF0' (in 4-component vector of float) -0:241 frexp (global 4-component vector of float) -0:241 'inF0' (in 4-component vector of float) -0:241 'inF1' (in 4-component vector of float) -0:242 isinf (global 4-component vector of bool) +0:242 mod (global 4-component vector of float) 0:242 'inF0' (in 4-component vector of float) -0:243 isnan (global 4-component vector of bool) +0:242 'inF1' (in 4-component vector of float) +0:243 Fraction (global 4-component vector of float) 0:243 'inF0' (in 4-component vector of float) -0:244 ldexp (global 4-component vector of float) +0:244 frexp (global 4-component vector of float) 0:244 'inF0' (in 4-component vector of float) 0:244 'inF1' (in 4-component vector of float) -0:245 length (global float) +0:245 isinf (global 4-component vector of bool) 0:245 'inF0' (in 4-component vector of float) -0:246 log (global 4-component vector of float) +0:246 isnan (global 4-component vector of bool) 0:246 'inF0' (in 4-component vector of float) -0:247 vector-scale (temp 4-component vector of float) -0:247 log2 (temp 4-component vector of float) -0:247 'inF0' (in 4-component vector of float) -0:247 Constant: -0:247 0.301030 -0:248 log2 (global 4-component vector of float) +0:247 ldexp (global 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 'inF0' (in 4-component vector of float) -0:249 max (global 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 'inF0' (in 4-component vector of float) -0:249 'inF1' (in 4-component vector of float) -0:250 min (global 4-component vector of float) +0:250 log (global 4-component vector of float) 0:250 'inF0' (in 4-component vector of float) -0:250 'inF1' (in 4-component vector of float) -0:252 normalize (global 4-component vector of float) +0: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 'inF0' (in 4-component vector of float) -0:253 pow (global 4-component vector of float) +0:253 max (global 4-component vector of float) 0:253 'inF0' (in 4-component vector of float) 0:253 'inF1' (in 4-component vector of float) -0:254 radians (global 4-component vector of float) +0:254 min (global 4-component vector of float) 0:254 'inF0' (in 4-component vector of float) -0:255 reflect (global 4-component vector of float) -0:255 'inF0' (in 4-component vector of float) -0:255 'inF1' (in 4-component vector of float) -0:256 refract (global 4-component vector of float) +0:254 'inF1' (in 4-component vector of float) +0:256 normalize (global 4-component vector of float) 0:256 'inF0' (in 4-component vector of float) -0:256 'inF1' (in 4-component vector of float) -0:256 Constant: -0:256 2.000000 +0:257 pow (global 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 'inF0' (in 4-component vector of float) +0:259 reflect (global 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 '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:? Constant: 0:? 1 (const uint) 0:? 2 (const uint) 0:? 3 (const uint) 0:? 4 (const uint) -0:258 roundEven (global 4-component vector of float) -0:258 'inF0' (in 4-component vector of float) -0:259 inverse sqrt (global 4-component vector of float) -0:259 'inF0' (in 4-component vector of float) -0:260 clamp (temp 4-component vector of float) -0:260 'inF0' (in 4-component vector of float) -0:260 Constant: -0:260 0.000000 -0:260 Constant: -0:260 1.000000 -0:261 Sign (global 4-component vector of float) -0:261 'inF0' (in 4-component vector of float) -0:262 sine (global 4-component vector of float) +0:262 roundEven (global 4-component vector of float) 0:262 'inF0' (in 4-component vector of float) -0:263 Sequence -0:263 move second child to first child (temp 4-component vector of float) -0:263 'inF1' (in 4-component vector of float) -0:263 sine (temp 4-component vector of float) -0:263 'inF0' (in 4-component vector of float) -0:263 move second child to first child (temp 4-component vector of float) -0:263 'inF2' (in 4-component vector of float) -0:263 cosine (temp 4-component vector of float) -0:263 'inF0' (in 4-component vector of float) -0:264 hyp. sine (global 4-component vector of float) +0:263 inverse sqrt (global 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) -0:265 smoothstep (global 4-component vector of float) +0:264 Constant: +0:264 0.000000 +0:264 Constant: +0:264 1.000000 +0:265 Sign (global 4-component vector of float) 0:265 'inF0' (in 4-component vector of float) -0:265 'inF1' (in 4-component vector of float) -0:265 'inF2' (in 4-component vector of float) -0:266 sqrt (global 4-component vector of float) +0:266 sine (global 4-component vector of float) 0:266 'inF0' (in 4-component vector of float) -0:267 step (global 4-component vector of float) -0:267 'inF0' (in 4-component vector of float) -0:267 'inF1' (in 4-component vector of float) -0:268 tangent (global 4-component vector of float) +0:267 Sequence +0:267 move second child to first child (temp 4-component vector of float) +0:267 'inF1' (in 4-component vector of float) +0:267 sine (temp 4-component vector of float) +0:267 'inF0' (in 4-component vector of float) +0:267 move second child to first child (temp 4-component vector of float) +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 'inF0' (in 4-component vector of float) -0:269 hyp. tangent (global 4-component vector of float) +0:269 smoothstep (global 4-component vector of float) 0:269 'inF0' (in 4-component vector of float) -0:271 trunc (global 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 'inF0' (in 4-component vector of float) +0:271 step (global 4-component vector of float) 0:271 'inF0' (in 4-component vector of float) -0:274 Branch: Return with expression +0:271 'inF1' (in 4-component vector of float) +0:272 tangent (global 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 'inF0' (in 4-component vector of float) +0:275 trunc (global 4-component vector of float) +0:275 'inF0' (in 4-component vector of float) +0:278 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 0:? 4.000000 -0:339 Function Definition: VertexShaderFunction(mf22;mf22;mf22; (temp 2X2 matrix of float) -0:331 Function Parameters: -0:331 'inF0' (in 2X2 matrix of float) -0:331 'inF1' (in 2X2 matrix of float) -0:331 'inF2' (in 2X2 matrix of float) +0:344 Function Definition: VertexShaderFunction2x2(mf22;mf22;mf22; (global 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:333 all (global bool) -0:333 'inF0' (in 2X2 matrix of float) -0:333 Absolute value (global 2X2 matrix of float) -0:333 'inF0' (in 2X2 matrix of float) -0:333 arc cosine (global 2X2 matrix of float) -0:333 'inF0' (in 2X2 matrix of float) -0:333 any (global bool) -0:333 'inF0' (in 2X2 matrix of float) -0:333 arc sine (global 2X2 matrix of float) -0:333 'inF0' (in 2X2 matrix of float) -0:333 arc tangent (global 2X2 matrix of float) -0:333 'inF0' (in 2X2 matrix of float) -0:333 arc tangent (global 2X2 matrix of float) -0:333 'inF0' (in 2X2 matrix of float) -0:333 'inF1' (in 2X2 matrix of float) -0:333 Ceiling (global 2X2 matrix of float) -0:333 'inF0' (in 2X2 matrix of float) -0:333 clamp (global 2X2 matrix of float) -0:333 'inF0' (in 2X2 matrix of float) -0:333 'inF1' (in 2X2 matrix of float) -0:333 'inF2' (in 2X2 matrix of float) -0:333 cosine (global 2X2 matrix of float) -0:333 'inF0' (in 2X2 matrix of float) -0:333 hyp. cosine (global 2X2 matrix of float) -0:333 'inF0' (in 2X2 matrix of float) -0:333 degrees (global 2X2 matrix of float) -0:333 'inF0' (in 2X2 matrix of float) -0:333 determinant (global float) -0:333 'inF0' (in 2X2 matrix of float) -0:333 exp (global 2X2 matrix of float) -0:333 'inF0' (in 2X2 matrix of float) -0:333 exp2 (global 2X2 matrix of float) -0:333 'inF0' (in 2X2 matrix of float) -0:333 findMSB (global int) -0:333 Constant: -0:333 7 (const int) -0:333 findLSB (global int) -0:333 Constant: -0:333 7 (const int) -0:333 Floor (global 2X2 matrix of float) -0:333 'inF0' (in 2X2 matrix of float) -0:333 mod (global 2X2 matrix of float) -0:333 'inF0' (in 2X2 matrix of float) -0:333 'inF1' (in 2X2 matrix of float) -0:333 Fraction (global 2X2 matrix of float) -0:333 'inF0' (in 2X2 matrix of float) -0:333 frexp (global 2X2 matrix of float) -0:333 'inF0' (in 2X2 matrix of float) -0:333 'inF1' (in 2X2 matrix of float) -0:333 ldexp (global 2X2 matrix of float) -0:333 'inF0' (in 2X2 matrix of float) -0:333 'inF1' (in 2X2 matrix of float) -0:333 log (global 2X2 matrix of float) -0:333 'inF0' (in 2X2 matrix of float) -0:333 matrix-scale (temp 2X2 matrix of float) -0:333 log2 (temp 2X2 matrix of float) -0:333 'inF0' (in 2X2 matrix of float) -0:333 Constant: -0:333 0.301030 -0:333 log2 (global 2X2 matrix of float) -0:333 'inF0' (in 2X2 matrix of float) -0:333 max (global 2X2 matrix of float) -0:333 'inF0' (in 2X2 matrix of float) -0:333 'inF1' (in 2X2 matrix of float) -0:333 min (global 2X2 matrix of float) -0:333 'inF0' (in 2X2 matrix of float) -0:333 'inF1' (in 2X2 matrix of float) -0:333 pow (global 2X2 matrix of float) -0:333 'inF0' (in 2X2 matrix of float) -0:333 'inF1' (in 2X2 matrix of float) -0:333 radians (global 2X2 matrix of float) -0:333 'inF0' (in 2X2 matrix of float) -0:333 roundEven (global 2X2 matrix of float) -0:333 'inF0' (in 2X2 matrix of float) -0:333 inverse sqrt (global 2X2 matrix of float) -0:333 'inF0' (in 2X2 matrix of float) -0:333 clamp (temp 2X2 matrix of float) -0:333 'inF0' (in 2X2 matrix of float) -0:333 Constant: -0:333 0.000000 -0:333 Constant: -0:333 1.000000 -0:333 Sign (global 2X2 matrix of float) -0:333 'inF0' (in 2X2 matrix of float) -0:333 sine (global 2X2 matrix of float) -0:333 'inF0' (in 2X2 matrix of float) -0:333 Sequence -0:333 move second child to first child (temp 2X2 matrix of float) -0:333 'inF1' (in 2X2 matrix of float) -0:333 sine (temp 2X2 matrix of float) -0:333 'inF0' (in 2X2 matrix of float) -0:333 move second child to first child (temp 2X2 matrix of float) -0:333 'inF2' (in 2X2 matrix of float) -0:333 cosine (temp 2X2 matrix of float) -0:333 'inF0' (in 2X2 matrix of float) -0:333 hyp. sine (global 2X2 matrix of float) -0:333 'inF0' (in 2X2 matrix of float) -0:333 smoothstep (global 2X2 matrix of float) -0:333 'inF0' (in 2X2 matrix of float) -0:333 'inF1' (in 2X2 matrix of float) -0:333 'inF2' (in 2X2 matrix of float) -0:333 sqrt (global 2X2 matrix of float) -0:333 'inF0' (in 2X2 matrix of float) -0:333 step (global 2X2 matrix of float) -0:333 'inF0' (in 2X2 matrix of float) -0:333 'inF1' (in 2X2 matrix of float) -0:333 tangent (global 2X2 matrix of float) -0:333 'inF0' (in 2X2 matrix of float) -0:333 hyp. tangent (global 2X2 matrix of float) -0:333 'inF0' (in 2X2 matrix of float) -0:333 transpose (global 2X2 matrix of float) -0:333 'inF0' (in 2X2 matrix of float) -0:333 trunc (global 2X2 matrix of float) -0:333 'inF0' (in 2X2 matrix of float) -0:336 Branch: Return with expression +0:338 all (global bool) +0:338 'inF0' (in 2X2 matrix of float) +0:338 Absolute value (global 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 arc cosine (global 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 any (global bool) +0:338 'inF0' (in 2X2 matrix of float) +0:338 arc sine (global 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 arc tangent (global 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 arc tangent (global 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 'inF0' (in 2X2 matrix of float) +0:338 clamp (global 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 'inF0' (in 2X2 matrix of float) +0:338 hyp. cosine (global 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 degrees (global 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 determinant (global float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 exp (global 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 exp2 (global 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 findMSB (global int) +0:338 Constant: +0:338 7 (const int) +0:338 findLSB (global int) +0:338 Constant: +0:338 7 (const int) +0:338 Floor (global 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 mod (global 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 'inF0' (in 2X2 matrix of float) +0:338 frexp (global 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 'inF0' (in 2X2 matrix of float) +0:338 'inF1' (in 2X2 matrix of float) +0:338 mix (global 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 '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 'inF0' (in 2X2 matrix of float) +0:338 max (global 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 'inF0' (in 2X2 matrix of float) +0:338 'inF1' (in 2X2 matrix of float) +0:338 pow (global 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 'inF0' (in 2X2 matrix of float) +0:338 roundEven (global 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 inverse sqrt (global 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) +0:338 Constant: +0:338 0.000000 +0:338 Constant: +0:338 1.000000 +0:338 Sign (global 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 sine (global 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) +0:338 'inF1' (in 2X2 matrix of float) +0:338 sine (temp 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 move second child to first child (temp 2X2 matrix of float) +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 'inF0' (in 2X2 matrix of float) +0:338 smoothstep (global 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 'inF0' (in 2X2 matrix of float) +0:338 step (global 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 'inF0' (in 2X2 matrix of float) +0:338 hyp. tangent (global 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 transpose (global 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:338 trunc (global 2X2 matrix of float) +0:338 'inF0' (in 2X2 matrix of float) +0:341 Branch: Return with expression 0:? Constant: 0:? 2.000000 0:? 2.000000 0:? 2.000000 0:? 2.000000 -0:348 Function Definition: VertexShaderFunction(mf33;mf33;mf33; (temp 3X3 matrix of float) -0:340 Function Parameters: -0:340 'inF0' (in 3X3 matrix of float) -0:340 'inF1' (in 3X3 matrix of float) -0:340 'inF2' (in 3X3 matrix of float) +0:353 Function Definition: VertexShaderFunction3x3(mf33;mf33;mf33; (global 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:342 all (global bool) -0:342 'inF0' (in 3X3 matrix of float) -0:342 Absolute value (global 3X3 matrix of float) -0:342 'inF0' (in 3X3 matrix of float) -0:342 arc cosine (global 3X3 matrix of float) -0:342 'inF0' (in 3X3 matrix of float) -0:342 any (global bool) -0:342 'inF0' (in 3X3 matrix of float) -0:342 arc sine (global 3X3 matrix of float) -0:342 'inF0' (in 3X3 matrix of float) -0:342 arc tangent (global 3X3 matrix of float) -0:342 'inF0' (in 3X3 matrix of float) -0:342 arc tangent (global 3X3 matrix of float) -0:342 'inF0' (in 3X3 matrix of float) -0:342 'inF1' (in 3X3 matrix of float) -0:342 Ceiling (global 3X3 matrix of float) -0:342 'inF0' (in 3X3 matrix of float) -0:342 clamp (global 3X3 matrix of float) -0:342 'inF0' (in 3X3 matrix of float) -0:342 'inF1' (in 3X3 matrix of float) -0:342 'inF2' (in 3X3 matrix of float) -0:342 cosine (global 3X3 matrix of float) -0:342 'inF0' (in 3X3 matrix of float) -0:342 hyp. cosine (global 3X3 matrix of float) -0:342 'inF0' (in 3X3 matrix of float) -0:342 degrees (global 3X3 matrix of float) -0:342 'inF0' (in 3X3 matrix of float) -0:342 determinant (global float) -0:342 'inF0' (in 3X3 matrix of float) -0:342 exp (global 3X3 matrix of float) -0:342 'inF0' (in 3X3 matrix of float) -0:342 exp2 (global 3X3 matrix of float) -0:342 'inF0' (in 3X3 matrix of float) -0:342 findMSB (global int) -0:342 Constant: -0:342 7 (const int) -0:342 findLSB (global int) -0:342 Constant: -0:342 7 (const int) -0:342 Floor (global 3X3 matrix of float) -0:342 'inF0' (in 3X3 matrix of float) -0:342 mod (global 3X3 matrix of float) -0:342 'inF0' (in 3X3 matrix of float) -0:342 'inF1' (in 3X3 matrix of float) -0:342 Fraction (global 3X3 matrix of float) -0:342 'inF0' (in 3X3 matrix of float) -0:342 frexp (global 3X3 matrix of float) -0:342 'inF0' (in 3X3 matrix of float) -0:342 'inF1' (in 3X3 matrix of float) -0:342 ldexp (global 3X3 matrix of float) -0:342 'inF0' (in 3X3 matrix of float) -0:342 'inF1' (in 3X3 matrix of float) -0:342 log (global 3X3 matrix of float) -0:342 'inF0' (in 3X3 matrix of float) -0:342 matrix-scale (temp 3X3 matrix of float) -0:342 log2 (temp 3X3 matrix of float) -0:342 'inF0' (in 3X3 matrix of float) -0:342 Constant: -0:342 0.301030 -0:342 log2 (global 3X3 matrix of float) -0:342 'inF0' (in 3X3 matrix of float) -0:342 max (global 3X3 matrix of float) -0:342 'inF0' (in 3X3 matrix of float) -0:342 'inF1' (in 3X3 matrix of float) -0:342 min (global 3X3 matrix of float) -0:342 'inF0' (in 3X3 matrix of float) -0:342 'inF1' (in 3X3 matrix of float) -0:342 pow (global 3X3 matrix of float) -0:342 'inF0' (in 3X3 matrix of float) -0:342 'inF1' (in 3X3 matrix of float) -0:342 radians (global 3X3 matrix of float) -0:342 'inF0' (in 3X3 matrix of float) -0:342 roundEven (global 3X3 matrix of float) -0:342 'inF0' (in 3X3 matrix of float) -0:342 inverse sqrt (global 3X3 matrix of float) -0:342 'inF0' (in 3X3 matrix of float) -0:342 clamp (temp 3X3 matrix of float) -0:342 'inF0' (in 3X3 matrix of float) -0:342 Constant: -0:342 0.000000 -0:342 Constant: -0:342 1.000000 -0:342 Sign (global 3X3 matrix of float) -0:342 'inF0' (in 3X3 matrix of float) -0:342 sine (global 3X3 matrix of float) -0:342 'inF0' (in 3X3 matrix of float) -0:342 Sequence -0:342 move second child to first child (temp 3X3 matrix of float) -0:342 'inF1' (in 3X3 matrix of float) -0:342 sine (temp 3X3 matrix of float) -0:342 'inF0' (in 3X3 matrix of float) -0:342 move second child to first child (temp 3X3 matrix of float) -0:342 'inF2' (in 3X3 matrix of float) -0:342 cosine (temp 3X3 matrix of float) -0:342 'inF0' (in 3X3 matrix of float) -0:342 hyp. sine (global 3X3 matrix of float) -0:342 'inF0' (in 3X3 matrix of float) -0:342 smoothstep (global 3X3 matrix of float) -0:342 'inF0' (in 3X3 matrix of float) -0:342 'inF1' (in 3X3 matrix of float) -0:342 'inF2' (in 3X3 matrix of float) -0:342 sqrt (global 3X3 matrix of float) -0:342 'inF0' (in 3X3 matrix of float) -0:342 step (global 3X3 matrix of float) -0:342 'inF0' (in 3X3 matrix of float) -0:342 'inF1' (in 3X3 matrix of float) -0:342 tangent (global 3X3 matrix of float) -0:342 'inF0' (in 3X3 matrix of float) -0:342 hyp. tangent (global 3X3 matrix of float) -0:342 'inF0' (in 3X3 matrix of float) -0:342 transpose (global 3X3 matrix of float) -0:342 'inF0' (in 3X3 matrix of float) -0:342 trunc (global 3X3 matrix of float) -0:342 'inF0' (in 3X3 matrix of float) -0:345 Branch: Return with expression +0:347 all (global bool) +0:347 'inF0' (in 3X3 matrix of float) +0:347 Absolute value (global 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 arc cosine (global 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 any (global bool) +0:347 'inF0' (in 3X3 matrix of float) +0:347 arc sine (global 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 arc tangent (global 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 arc tangent (global 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 'inF0' (in 3X3 matrix of float) +0:347 clamp (global 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 'inF0' (in 3X3 matrix of float) +0:347 hyp. cosine (global 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 degrees (global 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 determinant (global float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 exp (global 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 exp2 (global 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 findMSB (global int) +0:347 Constant: +0:347 7 (const int) +0:347 findLSB (global int) +0:347 Constant: +0:347 7 (const int) +0:347 Floor (global 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 mod (global 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 'inF0' (in 3X3 matrix of float) +0:347 frexp (global 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 'inF0' (in 3X3 matrix of float) +0:347 'inF1' (in 3X3 matrix of float) +0:347 mix (global 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 '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 'inF0' (in 3X3 matrix of float) +0:347 max (global 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 'inF0' (in 3X3 matrix of float) +0:347 'inF1' (in 3X3 matrix of float) +0:347 pow (global 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 'inF0' (in 3X3 matrix of float) +0:347 roundEven (global 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 inverse sqrt (global 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) +0:347 Constant: +0:347 0.000000 +0:347 Constant: +0:347 1.000000 +0:347 Sign (global 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 sine (global 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) +0:347 'inF1' (in 3X3 matrix of float) +0:347 sine (temp 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 move second child to first child (temp 3X3 matrix of float) +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 'inF0' (in 3X3 matrix of float) +0:347 smoothstep (global 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 'inF0' (in 3X3 matrix of float) +0:347 step (global 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 'inF0' (in 3X3 matrix of float) +0:347 hyp. tangent (global 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 transpose (global 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:347 trunc (global 3X3 matrix of float) +0:347 'inF0' (in 3X3 matrix of float) +0:350 Branch: Return with expression 0:? Constant: 0:? 3.000000 0:? 3.000000 @@ -2151,127 +2344,131 @@ Shader version: 450 0:? 3.000000 0:? 3.000000 0:? 3.000000 -0:369 Function Definition: VertexShaderFunction(mf44;mf44;mf44; (temp 4X4 matrix of float) -0:349 Function Parameters: -0:349 'inF0' (in 4X4 matrix of float) -0:349 'inF1' (in 4X4 matrix of float) -0:349 'inF2' (in 4X4 matrix of float) +0:374 Function Definition: VertexShaderFunction4x4(mf44;mf44;mf44; (global 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:351 all (global bool) -0:351 'inF0' (in 4X4 matrix of float) -0:351 Absolute value (global 4X4 matrix of float) -0:351 'inF0' (in 4X4 matrix of float) -0:351 arc cosine (global 4X4 matrix of float) -0:351 'inF0' (in 4X4 matrix of float) -0:351 any (global bool) -0:351 'inF0' (in 4X4 matrix of float) -0:351 arc sine (global 4X4 matrix of float) -0:351 'inF0' (in 4X4 matrix of float) -0:351 arc tangent (global 4X4 matrix of float) -0:351 'inF0' (in 4X4 matrix of float) -0:351 arc tangent (global 4X4 matrix of float) -0:351 'inF0' (in 4X4 matrix of float) -0:351 'inF1' (in 4X4 matrix of float) -0:351 Ceiling (global 4X4 matrix of float) -0:351 'inF0' (in 4X4 matrix of float) -0:351 clamp (global 4X4 matrix of float) -0:351 'inF0' (in 4X4 matrix of float) -0:351 'inF1' (in 4X4 matrix of float) -0:351 'inF2' (in 4X4 matrix of float) -0:351 cosine (global 4X4 matrix of float) -0:351 'inF0' (in 4X4 matrix of float) -0:351 hyp. cosine (global 4X4 matrix of float) -0:351 'inF0' (in 4X4 matrix of float) -0:351 degrees (global 4X4 matrix of float) -0:351 'inF0' (in 4X4 matrix of float) -0:351 determinant (global float) -0:351 'inF0' (in 4X4 matrix of float) -0:351 exp (global 4X4 matrix of float) -0:351 'inF0' (in 4X4 matrix of float) -0:351 exp2 (global 4X4 matrix of float) -0:351 'inF0' (in 4X4 matrix of float) -0:351 findMSB (global int) -0:351 Constant: -0:351 7 (const int) -0:351 findLSB (global int) -0:351 Constant: -0:351 7 (const int) -0:351 Floor (global 4X4 matrix of float) -0:351 'inF0' (in 4X4 matrix of float) -0:351 mod (global 4X4 matrix of float) -0:351 'inF0' (in 4X4 matrix of float) -0:351 'inF1' (in 4X4 matrix of float) -0:351 Fraction (global 4X4 matrix of float) -0:351 'inF0' (in 4X4 matrix of float) -0:351 frexp (global 4X4 matrix of float) -0:351 'inF0' (in 4X4 matrix of float) -0:351 'inF1' (in 4X4 matrix of float) -0:351 ldexp (global 4X4 matrix of float) -0:351 'inF0' (in 4X4 matrix of float) -0:351 'inF1' (in 4X4 matrix of float) -0:351 log (global 4X4 matrix of float) -0:351 'inF0' (in 4X4 matrix of float) -0:351 matrix-scale (temp 4X4 matrix of float) -0:351 log2 (temp 4X4 matrix of float) -0:351 'inF0' (in 4X4 matrix of float) -0:351 Constant: -0:351 0.301030 -0:351 log2 (global 4X4 matrix of float) -0:351 'inF0' (in 4X4 matrix of float) -0:351 max (global 4X4 matrix of float) -0:351 'inF0' (in 4X4 matrix of float) -0:351 'inF1' (in 4X4 matrix of float) -0:351 min (global 4X4 matrix of float) -0:351 'inF0' (in 4X4 matrix of float) -0:351 'inF1' (in 4X4 matrix of float) -0:351 pow (global 4X4 matrix of float) -0:351 'inF0' (in 4X4 matrix of float) -0:351 'inF1' (in 4X4 matrix of float) -0:351 radians (global 4X4 matrix of float) -0:351 'inF0' (in 4X4 matrix of float) -0:351 roundEven (global 4X4 matrix of float) -0:351 'inF0' (in 4X4 matrix of float) -0:351 inverse sqrt (global 4X4 matrix of float) -0:351 'inF0' (in 4X4 matrix of float) -0:351 clamp (temp 4X4 matrix of float) -0:351 'inF0' (in 4X4 matrix of float) -0:351 Constant: -0:351 0.000000 -0:351 Constant: -0:351 1.000000 -0:351 Sign (global 4X4 matrix of float) -0:351 'inF0' (in 4X4 matrix of float) -0:351 sine (global 4X4 matrix of float) -0:351 'inF0' (in 4X4 matrix of float) -0:351 Sequence -0:351 move second child to first child (temp 4X4 matrix of float) -0:351 'inF1' (in 4X4 matrix of float) -0:351 sine (temp 4X4 matrix of float) -0:351 'inF0' (in 4X4 matrix of float) -0:351 move second child to first child (temp 4X4 matrix of float) -0:351 'inF2' (in 4X4 matrix of float) -0:351 cosine (temp 4X4 matrix of float) -0:351 'inF0' (in 4X4 matrix of float) -0:351 hyp. sine (global 4X4 matrix of float) -0:351 'inF0' (in 4X4 matrix of float) -0:351 smoothstep (global 4X4 matrix of float) -0:351 'inF0' (in 4X4 matrix of float) -0:351 'inF1' (in 4X4 matrix of float) -0:351 'inF2' (in 4X4 matrix of float) -0:351 sqrt (global 4X4 matrix of float) -0:351 'inF0' (in 4X4 matrix of float) -0:351 step (global 4X4 matrix of float) -0:351 'inF0' (in 4X4 matrix of float) -0:351 'inF1' (in 4X4 matrix of float) -0:351 tangent (global 4X4 matrix of float) -0:351 'inF0' (in 4X4 matrix of float) -0:351 hyp. tangent (global 4X4 matrix of float) -0:351 'inF0' (in 4X4 matrix of float) -0:351 transpose (global 4X4 matrix of float) -0:351 'inF0' (in 4X4 matrix of float) -0:351 trunc (global 4X4 matrix of float) -0:351 'inF0' (in 4X4 matrix of float) -0:354 Branch: Return with expression +0:356 all (global bool) +0:356 'inF0' (in 4X4 matrix of float) +0:356 Absolute value (global 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 arc cosine (global 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 any (global bool) +0:356 'inF0' (in 4X4 matrix of float) +0:356 arc sine (global 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 arc tangent (global 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 arc tangent (global 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 'inF0' (in 4X4 matrix of float) +0:356 clamp (global 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 'inF0' (in 4X4 matrix of float) +0:356 hyp. cosine (global 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 degrees (global 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 determinant (global float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 exp (global 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 exp2 (global 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 findMSB (global int) +0:356 Constant: +0:356 7 (const int) +0:356 findLSB (global int) +0:356 Constant: +0:356 7 (const int) +0:356 Floor (global 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 mod (global 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 'inF0' (in 4X4 matrix of float) +0:356 frexp (global 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 'inF0' (in 4X4 matrix of float) +0:356 'inF1' (in 4X4 matrix of float) +0:356 mix (global 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 '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 'inF0' (in 4X4 matrix of float) +0:356 max (global 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 'inF0' (in 4X4 matrix of float) +0:356 'inF1' (in 4X4 matrix of float) +0:356 pow (global 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 'inF0' (in 4X4 matrix of float) +0:356 roundEven (global 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 inverse sqrt (global 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) +0:356 Constant: +0:356 0.000000 +0:356 Constant: +0:356 1.000000 +0:356 Sign (global 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 sine (global 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) +0:356 'inF1' (in 4X4 matrix of float) +0:356 sine (temp 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 move second child to first child (temp 4X4 matrix of float) +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 'inF0' (in 4X4 matrix of float) +0:356 smoothstep (global 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 'inF0' (in 4X4 matrix of float) +0:356 step (global 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 'inF0' (in 4X4 matrix of float) +0:356 hyp. tangent (global 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 transpose (global 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:356 trunc (global 4X4 matrix of float) +0:356 'inF0' (in 4X4 matrix of float) +0:359 Branch: Return with expression 0:? Constant: 0:? 4.000000 0:? 4.000000 @@ -2289,639 +2486,1750 @@ Shader version: 450 0:? 4.000000 0:? 4.000000 0:? 4.000000 -0:376 Function Definition: TestGenMul(f1;f1;vf2;vf2;mf22;mf22; (temp void) -0:372 Function Parameters: -0:372 'inF0' (in float) -0:372 'inF1' (in float) -0:372 'inFV0' (in 2-component vector of float) -0:372 'inFV1' (in 2-component vector of float) -0:372 'inFM0' (in 2X2 matrix of float) -0:372 'inFM1' (in 2X2 matrix of float) +0:381 Function Definition: TestGenMul2(f1;f1;vf2;vf2;mf22;mf22; (global void) +0:377 Function Parameters: +0:377 'inF0' (in float) +0:377 'inF1' (in float) +0:377 'inFV0' (in 2-component vector of float) +0:377 'inFV1' (in 2-component vector of float) +0:377 'inFM0' (in 2X2 matrix of float) +0:377 'inFM1' (in 2X2 matrix of float) 0:? Sequence -0:373 move second child to first child (temp float) -0:373 'r0' (temp float) -0:373 component-wise multiply (temp float) -0:373 'inF0' (in float) -0:373 'inF1' (in float) -0:373 move second child to first child (temp 2-component vector of float) -0:373 'r1' (temp 2-component vector of float) -0:373 vector-scale (temp 2-component vector of float) -0:373 'inFV0' (in 2-component vector of float) -0:373 'inF0' (in float) -0:373 move second child to first child (temp 2-component vector of float) -0:373 'r2' (temp 2-component vector of float) -0:373 vector-scale (temp 2-component vector of float) -0:373 'inF0' (in float) -0:373 'inFV0' (in 2-component vector of float) -0:373 move second child to first child (temp float) -0:373 'r3' (temp float) -0:373 dot-product (global float) -0:373 'inFV0' (in 2-component vector of float) -0:373 'inFV1' (in 2-component vector of float) -0:373 move second child to first child (temp 2-component vector of float) -0:373 'r4' (temp 2-component vector of float) -0:373 matrix-times-vector (temp 2-component vector of float) -0:373 'inFM0' (in 2X2 matrix of float) -0:373 'inFV0' (in 2-component vector of float) -0:373 move second child to first child (temp 2-component vector of float) -0:373 'r5' (temp 2-component vector of float) -0:373 vector-times-matrix (temp 2-component vector of float) -0:373 'inFV0' (in 2-component vector of float) -0:373 'inFM0' (in 2X2 matrix of float) -0:373 move second child to first child (temp 2X2 matrix of float) -0:373 'r6' (temp 2X2 matrix of float) -0:373 matrix-scale (temp 2X2 matrix of float) -0:373 'inFM0' (in 2X2 matrix of float) -0:373 'inF0' (in float) -0:373 move second child to first child (temp 2X2 matrix of float) -0:373 'r7' (temp 2X2 matrix of float) -0:373 matrix-scale (temp 2X2 matrix of float) -0:373 'inF0' (in float) -0:373 'inFM0' (in 2X2 matrix of float) -0:373 move second child to first child (temp 2X2 matrix of float) -0:373 'r8' (temp 2X2 matrix of float) -0:373 matrix-multiply (temp 2X2 matrix of float) -0:373 'inFM0' (in 2X2 matrix of float) -0:373 'inFM1' (in 2X2 matrix of float) -0:383 Function Definition: TestGenMul(f1;f1;vf3;vf3;mf33;mf33; (temp void) -0:379 Function Parameters: -0:379 'inF0' (in float) -0:379 'inF1' (in float) -0:379 'inFV0' (in 3-component vector of float) -0:379 'inFV1' (in 3-component vector of float) -0:379 'inFM0' (in 3X3 matrix of float) -0:379 'inFM1' (in 3X3 matrix of float) +0:378 Sequence +0:378 move second child to first child (temp float) +0:378 'r0' (temp float) +0:378 component-wise multiply (temp float) +0:378 'inF0' (in float) +0:378 'inF1' (in float) +0:378 Sequence +0:378 move second child to first child (temp 2-component vector of float) +0:378 'r1' (temp 2-component vector of float) +0:378 vector-scale (temp 2-component vector of float) +0:378 'inFV0' (in 2-component vector of float) +0:378 'inF0' (in float) +0:378 Sequence +0:378 move second child to first child (temp 2-component vector of float) +0:378 'r2' (temp 2-component vector of float) +0:378 vector-scale (temp 2-component vector of float) +0:378 'inF0' (in float) +0:378 'inFV0' (in 2-component vector of float) +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 'inFV0' (in 2-component vector of float) +0:378 'inFV1' (in 2-component vector of float) +0:378 Sequence +0:378 move second child to first child (temp 2-component vector of float) +0:378 'r4' (temp 2-component vector of float) +0:378 matrix-times-vector (temp 2-component vector of float) +0:378 'inFM0' (in 2X2 matrix of float) +0:378 'inFV0' (in 2-component vector of float) +0:378 Sequence +0:378 move second child to first child (temp 2-component vector of float) +0:378 'r5' (temp 2-component vector of float) +0:378 vector-times-matrix (temp 2-component vector of float) +0:378 'inFV0' (in 2-component vector of float) +0:378 'inFM0' (in 2X2 matrix of float) +0:378 Sequence +0:378 move second child to first child (temp 2X2 matrix of float) +0:378 'r6' (temp 2X2 matrix of float) +0:378 matrix-scale (temp 2X2 matrix of float) +0:378 'inFM0' (in 2X2 matrix of float) +0:378 'inF0' (in float) +0:378 Sequence +0:378 move second child to first child (temp 2X2 matrix of float) +0:378 'r7' (temp 2X2 matrix of float) +0:378 matrix-scale (temp 2X2 matrix of float) +0:378 'inF0' (in float) +0:378 'inFM0' (in 2X2 matrix of float) +0:378 Sequence +0:378 move second child to first child (temp 2X2 matrix of float) +0:378 'r8' (temp 2X2 matrix of float) +0:378 matrix-multiply (temp 2X2 matrix of float) +0:378 'inFM0' (in 2X2 matrix of float) +0:378 'inFM1' (in 2X2 matrix of float) +0:388 Function Definition: TestGenMul3(f1;f1;vf3;vf3;mf33;mf33; (global void) +0:384 Function Parameters: +0:384 'inF0' (in float) +0:384 'inF1' (in float) +0:384 'inFV0' (in 3-component vector of float) +0:384 'inFV1' (in 3-component vector of float) +0:384 'inFM0' (in 3X3 matrix of float) +0:384 'inFM1' (in 3X3 matrix of float) 0:? Sequence -0:380 move second child to first child (temp float) -0:380 'r0' (temp float) -0:380 component-wise multiply (temp float) -0:380 'inF0' (in float) -0:380 'inF1' (in float) -0:380 move second child to first child (temp 3-component vector of float) -0:380 'r1' (temp 3-component vector of float) -0:380 vector-scale (temp 3-component vector of float) -0:380 'inFV0' (in 3-component vector of float) -0:380 'inF0' (in float) -0:380 move second child to first child (temp 3-component vector of float) -0:380 'r2' (temp 3-component vector of float) -0:380 vector-scale (temp 3-component vector of float) -0:380 'inF0' (in float) -0:380 'inFV0' (in 3-component vector of float) -0:380 move second child to first child (temp float) -0:380 'r3' (temp float) -0:380 dot-product (global float) -0:380 'inFV0' (in 3-component vector of float) -0:380 'inFV1' (in 3-component vector of float) -0:380 move second child to first child (temp 3-component vector of float) -0:380 'r4' (temp 3-component vector of float) -0:380 matrix-times-vector (temp 3-component vector of float) -0:380 'inFM0' (in 3X3 matrix of float) -0:380 'inFV0' (in 3-component vector of float) -0:380 move second child to first child (temp 3-component vector of float) -0:380 'r5' (temp 3-component vector of float) -0:380 vector-times-matrix (temp 3-component vector of float) -0:380 'inFV0' (in 3-component vector of float) -0:380 'inFM0' (in 3X3 matrix of float) -0:380 move second child to first child (temp 3X3 matrix of float) -0:380 'r6' (temp 3X3 matrix of float) -0:380 matrix-scale (temp 3X3 matrix of float) -0:380 'inFM0' (in 3X3 matrix of float) -0:380 'inF0' (in float) -0:380 move second child to first child (temp 3X3 matrix of float) -0:380 'r7' (temp 3X3 matrix of float) -0:380 matrix-scale (temp 3X3 matrix of float) -0:380 'inF0' (in float) -0:380 'inFM0' (in 3X3 matrix of float) -0:380 move second child to first child (temp 3X3 matrix of float) -0:380 'r8' (temp 3X3 matrix of float) -0:380 matrix-multiply (temp 3X3 matrix of float) -0:380 'inFM0' (in 3X3 matrix of float) -0:380 'inFM1' (in 3X3 matrix of float) -0:389 Function Definition: TestGenMul(f1;f1;vf4;vf4;mf44;mf44; (temp void) -0:386 Function Parameters: -0:386 'inF0' (in float) -0:386 'inF1' (in float) -0:386 'inFV0' (in 4-component vector of float) -0:386 'inFV1' (in 4-component vector of float) -0:386 'inFM0' (in 4X4 matrix of float) -0:386 'inFM1' (in 4X4 matrix of float) +0:385 Sequence +0:385 move second child to first child (temp float) +0:385 'r0' (temp float) +0:385 component-wise multiply (temp float) +0:385 'inF0' (in float) +0:385 'inF1' (in float) +0:385 Sequence +0:385 move second child to first child (temp 3-component vector of float) +0:385 'r1' (temp 3-component vector of float) +0:385 vector-scale (temp 3-component vector of float) +0:385 'inFV0' (in 3-component vector of float) +0:385 'inF0' (in float) +0:385 Sequence +0:385 move second child to first child (temp 3-component vector of float) +0:385 'r2' (temp 3-component vector of float) +0:385 vector-scale (temp 3-component vector of float) +0:385 'inF0' (in float) +0:385 'inFV0' (in 3-component vector of float) +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 'inFV0' (in 3-component vector of float) +0:385 'inFV1' (in 3-component vector of float) +0:385 Sequence +0:385 move second child to first child (temp 3-component vector of float) +0:385 'r4' (temp 3-component vector of float) +0:385 matrix-times-vector (temp 3-component vector of float) +0:385 'inFM0' (in 3X3 matrix of float) +0:385 'inFV0' (in 3-component vector of float) +0:385 Sequence +0:385 move second child to first child (temp 3-component vector of float) +0:385 'r5' (temp 3-component vector of float) +0:385 vector-times-matrix (temp 3-component vector of float) +0:385 'inFV0' (in 3-component vector of float) +0:385 'inFM0' (in 3X3 matrix of float) +0:385 Sequence +0:385 move second child to first child (temp 3X3 matrix of float) +0:385 'r6' (temp 3X3 matrix of float) +0:385 matrix-scale (temp 3X3 matrix of float) +0:385 'inFM0' (in 3X3 matrix of float) +0:385 'inF0' (in float) +0:385 Sequence +0:385 move second child to first child (temp 3X3 matrix of float) +0:385 'r7' (temp 3X3 matrix of float) +0:385 matrix-scale (temp 3X3 matrix of float) +0:385 'inF0' (in float) +0:385 'inFM0' (in 3X3 matrix of float) +0:385 Sequence +0:385 move second child to first child (temp 3X3 matrix of float) +0:385 'r8' (temp 3X3 matrix of float) +0:385 matrix-multiply (temp 3X3 matrix of float) +0:385 'inFM0' (in 3X3 matrix of float) +0:385 'inFM1' (in 3X3 matrix of float) +0:396 Function Definition: TestGenMul4(f1;f1;vf4;vf4;mf44;mf44; (global void) +0:391 Function Parameters: +0:391 'inF0' (in float) +0:391 'inF1' (in float) +0:391 'inFV0' (in 4-component vector of float) +0:391 'inFV1' (in 4-component vector of float) +0:391 'inFM0' (in 4X4 matrix of float) +0:391 'inFM1' (in 4X4 matrix of float) 0:? Sequence -0:387 move second child to first child (temp float) -0:387 'r0' (temp float) -0:387 component-wise multiply (temp float) -0:387 'inF0' (in float) -0:387 'inF1' (in float) -0:387 move second child to first child (temp 4-component vector of float) -0:387 'r1' (temp 4-component vector of float) -0:387 vector-scale (temp 4-component vector of float) -0:387 'inFV0' (in 4-component vector of float) -0:387 'inF0' (in float) -0:387 move second child to first child (temp 4-component vector of float) -0:387 'r2' (temp 4-component vector of float) -0:387 vector-scale (temp 4-component vector of float) -0:387 'inF0' (in float) -0:387 'inFV0' (in 4-component vector of float) -0:387 move second child to first child (temp float) -0:387 'r3' (temp float) -0:387 dot-product (global float) -0:387 'inFV0' (in 4-component vector of float) -0:387 'inFV1' (in 4-component vector of float) -0:387 move second child to first child (temp 4-component vector of float) -0:387 'r4' (temp 4-component vector of float) -0:387 matrix-times-vector (temp 4-component vector of float) -0:387 'inFM0' (in 4X4 matrix of float) -0:387 'inFV0' (in 4-component vector of float) -0:387 move second child to first child (temp 4-component vector of float) -0:387 'r5' (temp 4-component vector of float) -0:387 vector-times-matrix (temp 4-component vector of float) -0:387 'inFV0' (in 4-component vector of float) -0:387 'inFM0' (in 4X4 matrix of float) -0:387 move second child to first child (temp 4X4 matrix of float) -0:387 'r6' (temp 4X4 matrix of float) -0:387 matrix-scale (temp 4X4 matrix of float) -0:387 'inFM0' (in 4X4 matrix of float) -0:387 'inF0' (in float) -0:387 move second child to first child (temp 4X4 matrix of float) -0:387 'r7' (temp 4X4 matrix of float) -0:387 matrix-scale (temp 4X4 matrix of float) -0:387 'inF0' (in float) -0:387 'inFM0' (in 4X4 matrix of float) -0:387 move second child to first child (temp 4X4 matrix of float) -0:387 'r8' (temp 4X4 matrix of float) -0:387 matrix-multiply (temp 4X4 matrix of float) -0:387 'inFM0' (in 4X4 matrix of float) -0:387 'inFM1' (in 4X4 matrix of float) +0:392 Sequence +0:392 move second child to first child (temp float) +0:392 'r0' (temp float) +0:392 component-wise multiply (temp float) +0:392 'inF0' (in float) +0:392 'inF1' (in float) +0:392 Sequence +0:392 move second child to first child (temp 4-component vector of float) +0:392 'r1' (temp 4-component vector of float) +0:392 vector-scale (temp 4-component vector of float) +0:392 'inFV0' (in 4-component vector of float) +0:392 'inF0' (in float) +0:392 Sequence +0:392 move second child to first child (temp 4-component vector of float) +0:392 'r2' (temp 4-component vector of float) +0:392 vector-scale (temp 4-component vector of float) +0:392 'inF0' (in float) +0:392 'inFV0' (in 4-component vector of float) +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 'inFV0' (in 4-component vector of float) +0:392 'inFV1' (in 4-component vector of float) +0:392 Sequence +0:392 move second child to first child (temp 4-component vector of float) +0:392 'r4' (temp 4-component vector of float) +0:392 matrix-times-vector (temp 4-component vector of float) +0:392 'inFM0' (in 4X4 matrix of float) +0:392 'inFV0' (in 4-component vector of float) +0:392 Sequence +0:392 move second child to first child (temp 4-component vector of float) +0:392 'r5' (temp 4-component vector of float) +0:392 vector-times-matrix (temp 4-component vector of float) +0:392 'inFV0' (in 4-component vector of float) +0:392 'inFM0' (in 4X4 matrix of float) +0:392 Sequence +0:392 move second child to first child (temp 4X4 matrix of float) +0:392 'r6' (temp 4X4 matrix of float) +0:392 matrix-scale (temp 4X4 matrix of float) +0:392 'inFM0' (in 4X4 matrix of float) +0:392 'inF0' (in float) +0:392 Sequence +0:392 move second child to first child (temp 4X4 matrix of float) +0:392 'r7' (temp 4X4 matrix of float) +0:392 matrix-scale (temp 4X4 matrix of float) +0:392 'inF0' (in float) +0:392 'inFM0' (in 4X4 matrix of float) +0:392 Sequence +0:392 move second child to first child (temp 4X4 matrix of float) +0:392 'r8' (temp 4X4 matrix of float) +0:392 matrix-multiply (temp 4X4 matrix of float) +0:392 'inFM0' (in 4X4 matrix of float) +0:392 'inFM1' (in 4X4 matrix of float) +0:420 Function Definition: TestGenMulNxM(f1;f1;vf2;vf3;mf32;mf23;mf33;mf43;mf42; (global void) +0:401 Function Parameters: +0:401 'inF0' (in float) +0:401 'inF1' (in float) +0:401 'inFV2' (in 2-component vector of float) +0:401 'inFV3' (in 3-component vector of float) +0:401 'inFM2x3' (in 3X2 matrix of float) +0:401 'inFM3x2' (in 2X3 matrix of float) +0:401 'inFM3x3' (in 3X3 matrix of float) +0:401 'inFM3x4' (in 4X3 matrix of float) +0:401 'inFM2x4' (in 4X2 matrix of float) +0:? Sequence +0:402 Sequence +0:402 move second child to first child (temp float) +0:402 'r00' (temp float) +0:402 component-wise multiply (temp float) +0:402 'inF0' (in float) +0:402 'inF1' (in float) +0:403 Sequence +0:403 move second child to first child (temp 2-component vector of float) +0:403 'r01' (temp 2-component vector of float) +0:403 vector-scale (temp 2-component vector of float) +0:403 'inFV2' (in 2-component vector of float) +0:403 'inF0' (in float) +0:404 Sequence +0:404 move second child to first child (temp 3-component vector of float) +0:404 'r02' (temp 3-component vector of float) +0:404 vector-scale (temp 3-component vector of float) +0:404 'inFV3' (in 3-component vector of float) +0:404 'inF0' (in float) +0:405 Sequence +0:405 move second child to first child (temp 2-component vector of float) +0:405 'r03' (temp 2-component vector of float) +0:405 vector-scale (temp 2-component vector of float) +0:405 'inF0' (in float) +0:405 'inFV2' (in 2-component vector of float) +0:406 Sequence +0:406 move second child to first child (temp 3-component vector of float) +0:406 'r04' (temp 3-component vector of float) +0:406 vector-scale (temp 3-component vector of float) +0:406 'inF0' (in float) +0:406 'inFV3' (in 3-component vector of float) +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 '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 'inFV3' (in 3-component vector of float) +0:408 'inFV3' (in 3-component vector of float) +0:409 Sequence +0:409 move second child to first child (temp 3-component vector of float) +0:409 'r07' (temp 3-component vector of float) +0:409 vector-times-matrix (temp 3-component vector of float) +0:409 'inFV2' (in 2-component vector of float) +0:409 'inFM2x3' (in 3X2 matrix of float) +0:410 Sequence +0:410 move second child to first child (temp 2-component vector of float) +0:410 'r08' (temp 2-component vector of float) +0:410 vector-times-matrix (temp 2-component vector of float) +0:410 'inFV3' (in 3-component vector of float) +0:410 'inFM3x2' (in 2X3 matrix of float) +0:411 Sequence +0:411 move second child to first child (temp 2-component vector of float) +0:411 'r09' (temp 2-component vector of float) +0:411 matrix-times-vector (temp 2-component vector of float) +0:411 'inFM2x3' (in 3X2 matrix of float) +0:411 'inFV3' (in 3-component vector of float) +0:412 Sequence +0:412 move second child to first child (temp 3-component vector of float) +0:412 'r10' (temp 3-component vector of float) +0:412 matrix-times-vector (temp 3-component vector of float) +0:412 'inFM3x2' (in 2X3 matrix of float) +0:412 'inFV2' (in 2-component vector of float) +0:413 Sequence +0:413 move second child to first child (temp 3X2 matrix of float) +0:413 'r11' (temp 3X2 matrix of float) +0:413 matrix-scale (temp 3X2 matrix of float) +0:413 'inFM2x3' (in 3X2 matrix of float) +0:413 'inF0' (in float) +0:414 Sequence +0:414 move second child to first child (temp 2X3 matrix of float) +0:414 'r12' (temp 2X3 matrix of float) +0:414 matrix-scale (temp 2X3 matrix of float) +0:414 'inFM3x2' (in 2X3 matrix of float) +0:414 'inF0' (in float) +0:415 Sequence +0:415 move second child to first child (temp 2X2 matrix of float) +0:415 'r13' (temp 2X2 matrix of float) +0:415 matrix-multiply (temp 2X2 matrix of float) +0:415 'inFM2x3' (in 3X2 matrix of float) +0:415 'inFM3x2' (in 2X3 matrix of float) +0:416 Sequence +0:416 move second child to first child (temp 3X2 matrix of float) +0:416 'r14' (temp 3X2 matrix of float) +0:416 matrix-multiply (temp 3X2 matrix of float) +0:416 'inFM2x3' (in 3X2 matrix of float) +0:416 'inFM3x3' (in 3X3 matrix of float) +0:417 Sequence +0:417 move second child to first child (temp 4X2 matrix of float) +0:417 'r15' (temp 4X2 matrix of float) +0:417 matrix-multiply (temp 4X2 matrix of float) +0:417 'inFM2x3' (in 3X2 matrix of float) +0:417 'inFM3x4' (in 4X3 matrix of float) +0:418 Sequence +0:418 move second child to first child (temp 4X3 matrix of float) +0:418 'r16' (temp 4X3 matrix of float) +0:418 matrix-multiply (temp 4X3 matrix of float) +0:418 'inFM3x2' (in 2X3 matrix of float) +0:418 'inFM2x4' (in 4X2 matrix of float) 0:? Linker Objects // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 1090 +// Id's are bound by 1238 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "VertexShaderFunction" 48 67 73 80 174 192 198 205 321 339 345 352 470 488 494 501 626 640 647 742 756 763 861 875 882 + EntryPoint Vertex 4 "VertexShaderFunction" Source HLSL 450 Name 4 "VertexShaderFunction" - Name 19 "TestGenMul(f1;f1;vf2;vf2;mf22;mf22;" - Name 13 "inF0" - Name 14 "inF1" - Name 15 "inFV0" - Name 16 "inFV1" - Name 17 "inFM0" - Name 18 "inFM1" - Name 32 "TestGenMul(f1;f1;vf3;vf3;mf33;mf33;" - Name 26 "inF0" - Name 27 "inF1" - Name 28 "inFV0" - Name 29 "inFV1" - Name 30 "inFM0" - Name 31 "inFM1" - Name 45 "TestGenMul(f1;f1;vf4;vf4;mf44;mf44;" - Name 39 "inF0" - Name 40 "inF1" - Name 41 "inFV0" - Name 42 "inFV1" - Name 43 "inFM0" - Name 44 "inFM1" - Name 48 "inF0" - Name 67 "inU0" - Name 73 "inF1" - Name 80 "inF2" - Name 106 "ResType" - Name 174 "inF0" - Name 192 "inU0" - Name 198 "inF1" - Name 205 "inF2" - Name 241 "ResType" - Name 321 "inF0" - Name 339 "inU0" - Name 345 "inF1" - Name 352 "inF2" - Name 391 "ResType" - Name 470 "inF0" - Name 488 "inU0" - Name 494 "inF1" - Name 501 "inF2" - Name 546 "ResType" - Name 626 "inF0" - Name 640 "inF1" - Name 647 "inF2" - Name 678 "ResType" - Name 742 "inF0" - Name 756 "inF1" - Name 763 "inF2" - Name 797 "ResType" - Name 861 "inF0" - Name 875 "inF1" - Name 882 "inF2" - Name 919 "ResType" - Name 982 "r0" - Name 986 "r1" - Name 990 "r2" - Name 994 "r3" - Name 998 "r4" - Name 1002 "r5" - Name 1006 "r6" - Name 1010 "r7" - Name 1014 "r8" - Name 1018 "r0" - Name 1022 "r1" - Name 1026 "r2" - Name 1030 "r3" - Name 1034 "r4" - Name 1038 "r5" - Name 1042 "r6" - Name 1046 "r7" - Name 1050 "r8" - Name 1054 "r0" - Name 1058 "r1" - Name 1062 "r2" - Name 1066 "r3" - Name 1070 "r4" - Name 1074 "r5" - Name 1078 "r6" - Name 1082 "r7" - Name 1086 "r8" + Name 16 "VertexShaderFunctionS(f1;f1;f1;u1;u1;" + Name 11 "inF0" + Name 12 "inF1" + Name 13 "inF2" + Name 14 "inU0" + Name 15 "inU1" + Name 22 "VertexShaderFunction1(vf1;vf1;vf1;" + Name 19 "inF0" + Name 20 "inF1" + Name 21 "inF2" + Name 34 "VertexShaderFunction2(vf2;vf2;vf2;vu2;vu2;" + Name 29 "inF0" + Name 30 "inF1" + Name 31 "inF2" + Name 32 "inU0" + Name 33 "inU1" + Name 46 "VertexShaderFunction3(vf3;vf3;vf3;vu3;vu3;" + Name 41 "inF0" + Name 42 "inF1" + Name 43 "inF2" + Name 44 "inU0" + Name 45 "inU1" + Name 58 "VertexShaderFunction4(vf4;vf4;vf4;vu4;vu4;" + Name 53 "inF0" + Name 54 "inF1" + Name 55 "inF2" + Name 56 "inU0" + Name 57 "inU1" + Name 66 "VertexShaderFunction2x2(mf22;mf22;mf22;" + Name 63 "inF0" + Name 64 "inF1" + Name 65 "inF2" + Name 74 "VertexShaderFunction3x3(mf33;mf33;mf33;" + Name 71 "inF0" + Name 72 "inF1" + Name 73 "inF2" + Name 82 "VertexShaderFunction4x4(mf44;mf44;mf44;" + Name 79 "inF0" + Name 80 "inF1" + Name 81 "inF2" + Name 91 "TestGenMul2(f1;f1;vf2;vf2;mf22;mf22;" + Name 85 "inF0" + Name 86 "inF1" + Name 87 "inFV0" + Name 88 "inFV1" + Name 89 "inFM0" + Name 90 "inFM1" + Name 100 "TestGenMul3(f1;f1;vf3;vf3;mf33;mf33;" + Name 94 "inF0" + Name 95 "inF1" + Name 96 "inFV0" + Name 97 "inFV1" + Name 98 "inFM0" + Name 99 "inFM1" + Name 109 "TestGenMul4(f1;f1;vf4;vf4;mf44;mf44;" + Name 103 "inF0" + Name 104 "inF1" + Name 105 "inFV0" + Name 106 "inFV1" + Name 107 "inFM0" + Name 108 "inFM1" + Name 129 "TestGenMulNxM(f1;f1;vf2;vf3;mf32;mf23;mf33;mf43;mf42;" + Name 120 "inF0" + Name 121 "inF1" + Name 122 "inFV2" + Name 123 "inFV3" + Name 124 "inFM2x3" + Name 125 "inFM3x2" + 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" 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypePointer Function 6(float) - 8: TypeVector 6(float) 2 - 9: TypePointer Function 8(fvec2) - 10: TypeMatrix 8(fvec2) 2 - 11: TypePointer Function 10 - 12: TypeFunction 2 7(ptr) 7(ptr) 9(ptr) 9(ptr) 11(ptr) 11(ptr) - 21: TypeVector 6(float) 3 - 22: TypePointer Function 21(fvec3) - 23: TypeMatrix 21(fvec3) 3 - 24: TypePointer Function 23 - 25: TypeFunction 2 7(ptr) 7(ptr) 22(ptr) 22(ptr) 24(ptr) 24(ptr) - 34: TypeVector 6(float) 4 - 35: TypePointer Function 34(fvec4) - 36: TypeMatrix 34(fvec4) 4 - 37: TypePointer Function 36 - 38: TypeFunction 2 7(ptr) 7(ptr) 35(ptr) 35(ptr) 37(ptr) 37(ptr) - 47: TypePointer Input 6(float) - 48(inF0): 47(ptr) Variable Input - 50: TypeBool - 61: TypeInt 32 1 - 64: TypeInt 32 0 - 66: TypePointer Input 64(int) - 67(inU0): 66(ptr) Variable Input - 73(inF1): 47(ptr) Variable Input - 80(inF2): 47(ptr) Variable Input - 87: 64(int) Constant 7 - 95: 61(int) Constant 7 - 106(ResType): TypeStruct 6(float) 61(int) - 121: 6(float) Constant 1050288283 - 136: 64(int) Constant 2 - 143: 6(float) Constant 0 - 144: 6(float) Constant 1065353216 - 173: TypePointer Input 8(fvec2) - 174(inF0): 173(ptr) Variable Input - 186: TypeVector 61(int) 2 - 189: TypeVector 64(int) 2 - 191: TypePointer Input 189(ivec2) - 192(inU0): 191(ptr) Variable Input - 198(inF1): 173(ptr) Variable Input - 205(inF2): 173(ptr) Variable Input - 212: 64(int) Constant 3 - 213: 189(ivec2) ConstantComposite 87 212 - 241(ResType): TypeStruct 8(fvec2) 186(ivec2) - 246: TypeVector 50(bool) 2 - 280: 6(float) Constant 1073741824 - 282: 64(int) Constant 1 - 283: 189(ivec2) ConstantComposite 282 136 - 318: 8(fvec2) ConstantComposite 144 280 - 320: TypePointer Input 21(fvec3) - 321(inF0): 320(ptr) Variable Input - 333: TypeVector 61(int) 3 - 336: TypeVector 64(int) 3 - 338: TypePointer Input 336(ivec3) - 339(inU0): 338(ptr) Variable Input - 345(inF1): 320(ptr) Variable Input - 352(inF2): 320(ptr) Variable Input - 359: 64(int) Constant 5 - 360: 336(ivec3) ConstantComposite 87 212 359 - 391(ResType): TypeStruct 21(fvec3) 333(ivec3) - 396: TypeVector 50(bool) 3 - 431: 336(ivec3) ConstantComposite 282 136 212 - 466: 6(float) Constant 1077936128 - 467: 21(fvec3) ConstantComposite 144 280 466 - 469: TypePointer Input 34(fvec4) - 470(inF0): 469(ptr) Variable Input - 482: TypeVector 61(int) 4 - 485: TypeVector 64(int) 4 - 487: TypePointer Input 485(ivec4) - 488(inU0): 487(ptr) Variable Input - 494(inF1): 469(ptr) Variable Input - 501(inF2): 469(ptr) Variable Input - 508: 485(ivec4) ConstantComposite 87 212 359 136 - 546(ResType): TypeStruct 34(fvec4) 482(ivec4) - 551: TypeVector 50(bool) 4 - 586: 64(int) Constant 4 - 587: 485(ivec4) ConstantComposite 282 136 212 586 - 622: 6(float) Constant 1082130432 - 623: 34(fvec4) ConstantComposite 144 280 466 622 - 625: TypePointer Input 10 - 626(inF0): 625(ptr) Variable Input - 640(inF1): 625(ptr) Variable Input - 647(inF2): 625(ptr) Variable Input - 678(ResType): TypeStruct 10 186(ivec2) - 738: 8(fvec2) ConstantComposite 280 280 - 739: 10 ConstantComposite 738 738 - 741: TypePointer Input 23 - 742(inF0): 741(ptr) Variable Input - 756(inF1): 741(ptr) Variable Input - 763(inF2): 741(ptr) Variable Input - 797(ResType): TypeStruct 23 333(ivec3) - 857: 21(fvec3) ConstantComposite 466 466 466 - 858: 23 ConstantComposite 857 857 857 - 860: TypePointer Input 36 - 861(inF0): 860(ptr) Variable Input - 875(inF1): 860(ptr) Variable Input - 882(inF2): 860(ptr) Variable Input - 919(ResType): TypeStruct 36 482(ivec4) - 979: 34(fvec4) ConstantComposite 622 622 622 622 - 980: 36 ConstantComposite 979 979 979 979 + 8: TypeInt 32 0 + 9: TypePointer Function 8(int) + 10: TypeFunction 6(float) 7(ptr) 7(ptr) 7(ptr) 9(ptr) 9(ptr) + 18: TypeFunction 6(float) 7(ptr) 7(ptr) 7(ptr) + 24: TypeVector 6(float) 2 + 25: TypePointer Function 24(fvec2) + 26: TypeVector 8(int) 2 + 27: TypePointer Function 26(ivec2) + 28: TypeFunction 24(fvec2) 25(ptr) 25(ptr) 25(ptr) 27(ptr) 27(ptr) + 36: TypeVector 6(float) 3 + 37: TypePointer Function 36(fvec3) + 38: TypeVector 8(int) 3 + 39: TypePointer Function 38(ivec3) + 40: TypeFunction 36(fvec3) 37(ptr) 37(ptr) 37(ptr) 39(ptr) 39(ptr) + 48: TypeVector 6(float) 4 + 49: TypePointer Function 48(fvec4) + 50: TypeVector 8(int) 4 + 51: TypePointer Function 50(ivec4) + 52: TypeFunction 48(fvec4) 49(ptr) 49(ptr) 49(ptr) 51(ptr) 51(ptr) + 60: TypeMatrix 24(fvec2) 2 + 61: TypePointer Function 60 + 62: TypeFunction 60 61(ptr) 61(ptr) 61(ptr) + 68: TypeMatrix 36(fvec3) 3 + 69: TypePointer Function 68 + 70: TypeFunction 68 69(ptr) 69(ptr) 69(ptr) + 76: TypeMatrix 48(fvec4) 4 + 77: TypePointer Function 76 + 78: TypeFunction 76 77(ptr) 77(ptr) 77(ptr) + 84: TypeFunction 2 7(ptr) 7(ptr) 25(ptr) 25(ptr) 61(ptr) 61(ptr) + 93: TypeFunction 2 7(ptr) 7(ptr) 37(ptr) 37(ptr) 69(ptr) 69(ptr) + 102: TypeFunction 2 7(ptr) 7(ptr) 49(ptr) 49(ptr) 77(ptr) 77(ptr) + 111: TypeMatrix 24(fvec2) 3 + 112: TypePointer Function 111 + 113: TypeMatrix 36(fvec3) 2 + 114: TypePointer Function 113 + 115: TypeMatrix 36(fvec3) 4 + 116: TypePointer Function 115 + 117: TypeMatrix 24(fvec2) 4 + 118: TypePointer Function 117 + 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 4(VertexShaderFunction): 2 Function None 3 5: Label - 49: 6(float) Load 48(inF0) - 51: 50(bool) All 49 - 52: 6(float) Load 48(inF0) - 53: 6(float) ExtInst 1(GLSL.std.450) 4(FAbs) 52 - 54: 6(float) Load 48(inF0) - 55: 6(float) ExtInst 1(GLSL.std.450) 17(Acos) 54 - 56: 6(float) Load 48(inF0) - 57: 50(bool) Any 56 - 58: 6(float) Load 48(inF0) - 59: 6(float) ExtInst 1(GLSL.std.450) 16(Asin) 58 - 60: 6(float) Load 48(inF0) - 62: 61(int) Bitcast 60 - 63: 6(float) Load 48(inF0) - 65: 64(int) Bitcast 63 - 68: 64(int) Load 67(inU0) - 69: 6(float) Bitcast 68 - 70: 6(float) Load 48(inF0) - 71: 6(float) ExtInst 1(GLSL.std.450) 18(Atan) 70 - 72: 6(float) Load 48(inF0) - 74: 6(float) Load 73(inF1) - 75: 6(float) ExtInst 1(GLSL.std.450) 25(Atan2) 72 74 - 76: 6(float) Load 48(inF0) - 77: 6(float) ExtInst 1(GLSL.std.450) 9(Ceil) 76 - 78: 6(float) Load 48(inF0) - 79: 6(float) Load 73(inF1) - 81: 6(float) Load 80(inF2) - 82: 6(float) ExtInst 1(GLSL.std.450) 43(FClamp) 78 79 81 - 83: 6(float) Load 48(inF0) - 84: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 83 - 85: 6(float) Load 48(inF0) - 86: 6(float) ExtInst 1(GLSL.std.450) 20(Cosh) 85 - 88: 64(int) BitCount 87 - 89: 6(float) Load 48(inF0) - 90: 6(float) ExtInst 1(GLSL.std.450) 12(Degrees) 89 - 91: 6(float) Load 48(inF0) - 92: 6(float) ExtInst 1(GLSL.std.450) 27(Exp) 91 - 93: 6(float) Load 48(inF0) - 94: 6(float) ExtInst 1(GLSL.std.450) 29(Exp2) 93 - 96: 61(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 95 - 97: 61(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 95 - 98: 6(float) Load 48(inF0) - 99: 6(float) ExtInst 1(GLSL.std.450) 8(Floor) 98 - 100: 6(float) Load 48(inF0) - 101: 6(float) Load 73(inF1) - 102: 6(float) FMod 100 101 - 103: 6(float) Load 48(inF0) - 104: 6(float) ExtInst 1(GLSL.std.450) 10(Fract) 103 - 105: 6(float) Load 48(inF0) - 107:106(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 105 - 108: 61(int) CompositeExtract 107 1 - Store 73(inF1) 108 - 109: 6(float) CompositeExtract 107 0 - 110: 6(float) Load 48(inF0) - 111: 50(bool) IsInf 110 - 112: 6(float) Load 48(inF0) - 113: 50(bool) IsNan 112 - 114: 6(float) Load 48(inF0) - 115: 6(float) Load 73(inF1) - 116: 6(float) ExtInst 1(GLSL.std.450) 53(Ldexp) 114 115 - 117: 6(float) Load 48(inF0) - 118: 6(float) ExtInst 1(GLSL.std.450) 28(Log) 117 - 119: 6(float) Load 48(inF0) - 120: 6(float) ExtInst 1(GLSL.std.450) 30(Log2) 119 - 122: 6(float) FMul 120 121 - 123: 6(float) Load 48(inF0) - 124: 6(float) ExtInst 1(GLSL.std.450) 30(Log2) 123 - 125: 6(float) Load 48(inF0) - 126: 6(float) Load 73(inF1) - 127: 6(float) ExtInst 1(GLSL.std.450) 40(FMax) 125 126 - 128: 6(float) Load 48(inF0) - 129: 6(float) Load 73(inF1) - 130: 6(float) ExtInst 1(GLSL.std.450) 37(FMin) 128 129 - 131: 6(float) Load 48(inF0) - 132: 6(float) Load 73(inF1) - 133: 6(float) ExtInst 1(GLSL.std.450) 26(Pow) 131 132 - 134: 6(float) Load 48(inF0) - 135: 6(float) ExtInst 1(GLSL.std.450) 11(Radians) 134 - 137: 64(int) BitReverse 136 - 138: 6(float) Load 48(inF0) - 139: 6(float) ExtInst 1(GLSL.std.450) 2(RoundEven) 138 - 140: 6(float) Load 48(inF0) - 141: 6(float) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 140 - 142: 6(float) Load 48(inF0) - 145: 6(float) ExtInst 1(GLSL.std.450) 43(FClamp) 142 143 144 - 146: 6(float) Load 48(inF0) - 147: 6(float) ExtInst 1(GLSL.std.450) 6(FSign) 146 - 148: 6(float) Load 48(inF0) - 149: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 148 - 150: 6(float) Load 48(inF0) - 151: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 150 - Store 73(inF1) 151 - 152: 6(float) Load 48(inF0) - 153: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 152 - Store 80(inF2) 153 - 154: 6(float) Load 48(inF0) - 155: 6(float) ExtInst 1(GLSL.std.450) 19(Sinh) 154 - 156: 6(float) Load 48(inF0) - 157: 6(float) Load 73(inF1) - 158: 6(float) Load 80(inF2) - 159: 6(float) ExtInst 1(GLSL.std.450) 49(SmoothStep) 156 157 158 - 160: 6(float) Load 48(inF0) - 161: 6(float) ExtInst 1(GLSL.std.450) 31(Sqrt) 160 - 162: 6(float) Load 48(inF0) - 163: 6(float) Load 73(inF1) - 164: 6(float) ExtInst 1(GLSL.std.450) 48(Step) 162 163 - 165: 6(float) Load 48(inF0) - 166: 6(float) ExtInst 1(GLSL.std.450) 15(Tan) 165 - 167: 6(float) Load 48(inF0) - 168: 6(float) ExtInst 1(GLSL.std.450) 21(Tanh) 167 - 169: 6(float) Load 48(inF0) - 170: 6(float) ExtInst 1(GLSL.std.450) 3(Trunc) 169 - ReturnValue 143 FunctionEnd -19(TestGenMul(f1;f1;vf2;vf2;mf22;mf22;): 2 Function None 12 - 13(inF0): 7(ptr) FunctionParameter - 14(inF1): 7(ptr) FunctionParameter - 15(inFV0): 9(ptr) FunctionParameter - 16(inFV1): 9(ptr) FunctionParameter - 17(inFM0): 11(ptr) FunctionParameter - 18(inFM1): 11(ptr) FunctionParameter - 20: Label - 982(r0): 7(ptr) Variable Function - 986(r1): 9(ptr) Variable Function - 990(r2): 9(ptr) Variable Function - 994(r3): 7(ptr) Variable Function - 998(r4): 9(ptr) Variable Function - 1002(r5): 9(ptr) Variable Function - 1006(r6): 11(ptr) Variable Function - 1010(r7): 11(ptr) Variable Function - 1014(r8): 11(ptr) Variable Function - 983: 6(float) Load 13(inF0) - 984: 6(float) Load 14(inF1) - 985: 6(float) FMul 983 984 - Store 982(r0) 985 - 987: 8(fvec2) Load 15(inFV0) - 988: 6(float) Load 13(inF0) - 989: 8(fvec2) VectorTimesScalar 987 988 - Store 986(r1) 989 - 991: 6(float) Load 13(inF0) - 992: 8(fvec2) Load 15(inFV0) - 993: 8(fvec2) VectorTimesScalar 992 991 - Store 990(r2) 993 - 995: 8(fvec2) Load 15(inFV0) - 996: 8(fvec2) Load 16(inFV1) - 997: 6(float) Dot 995 996 - Store 994(r3) 997 - 999: 10 Load 17(inFM0) - 1000: 8(fvec2) Load 15(inFV0) - 1001: 8(fvec2) MatrixTimesVector 999 1000 - Store 998(r4) 1001 - 1003: 8(fvec2) Load 15(inFV0) - 1004: 10 Load 17(inFM0) - 1005: 8(fvec2) VectorTimesMatrix 1003 1004 - Store 1002(r5) 1005 - 1007: 10 Load 17(inFM0) - 1008: 6(float) Load 13(inF0) - 1009: 10 MatrixTimesScalar 1007 1008 - Store 1006(r6) 1009 - 1011: 6(float) Load 13(inF0) - 1012: 10 Load 17(inFM0) - 1013: 10 MatrixTimesScalar 1012 1011 - Store 1010(r7) 1013 - 1015: 10 Load 17(inFM0) - 1016: 10 Load 18(inFM1) - 1017: 10 MatrixTimesMatrix 1015 1016 - Store 1014(r8) 1017 +16(VertexShaderFunctionS(f1;f1;f1;u1;u1;): 6(float) Function None 10 + 11(inF0): 7(ptr) FunctionParameter + 12(inF1): 7(ptr) FunctionParameter + 13(inF2): 7(ptr) FunctionParameter + 14(inU0): 9(ptr) FunctionParameter + 15(inU1): 9(ptr) FunctionParameter + 17: Label + 131: 6(float) Load 11(inF0) + 133: 132(bool) All 131 + 134: 6(float) Load 11(inF0) + 135: 6(float) ExtInst 1(GLSL.std.450) 4(FAbs) 134 + 136: 6(float) Load 11(inF0) + 137: 6(float) ExtInst 1(GLSL.std.450) 17(Acos) 136 + 138: 6(float) Load 11(inF0) + 139: 132(bool) Any 138 + 140: 6(float) Load 11(inF0) + 141: 6(float) ExtInst 1(GLSL.std.450) 16(Asin) 140 + 142: 6(float) Load 11(inF0) + 144: 143(int) Bitcast 142 + 145: 6(float) Load 11(inF0) + 146: 8(int) Bitcast 145 + 147: 8(int) Load 14(inU0) + 148: 6(float) Bitcast 147 + 149: 6(float) Load 11(inF0) + 150: 6(float) ExtInst 1(GLSL.std.450) 18(Atan) 149 + 151: 6(float) Load 11(inF0) + 152: 6(float) Load 12(inF1) + 153: 6(float) ExtInst 1(GLSL.std.450) 25(Atan2) 151 152 + 154: 6(float) Load 11(inF0) + 155: 6(float) ExtInst 1(GLSL.std.450) 9(Ceil) 154 + 156: 6(float) Load 11(inF0) + 157: 6(float) Load 12(inF1) + 158: 6(float) Load 13(inF2) + 159: 6(float) ExtInst 1(GLSL.std.450) 43(FClamp) 156 157 158 + 160: 6(float) Load 11(inF0) + 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 + 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 + 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 + FunctionEnd +34(VertexShaderFunction2(vf2;vf2;vf2;vu2;vu2;): 24(fvec2) Function None 28 + 29(inF0): 25(ptr) FunctionParameter + 30(inF1): 25(ptr) FunctionParameter + 31(inF2): 25(ptr) FunctionParameter + 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) + 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 + FunctionEnd +46(VertexShaderFunction3(vf3;vf3;vf3;vu3;vu3;): 36(fvec3) Function None 40 + 41(inF0): 37(ptr) FunctionParameter + 42(inF1): 37(ptr) FunctionParameter + 43(inF2): 37(ptr) FunctionParameter + 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) + 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 + FunctionEnd +58(VertexShaderFunction4(vf4;vf4;vf4;vu4;vu4;): 48(fvec4) Function None 52 + 53(inF0): 49(ptr) FunctionParameter + 54(inF1): 49(ptr) FunctionParameter + 55(inF2): 49(ptr) FunctionParameter + 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 + 591: 6(float) Load 590 + 592: 7(ptr) AccessChain 54(inF1) 362 + 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 + 602: 48(fvec4) Load 53(inF0) + 603: 48(fvec4) ExtInst 1(GLSL.std.450) 29(Exp2) 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 + 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 + 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 + 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 + 636: 48(fvec4) Load 53(inF0) + 637: 48(fvec4) ExtInst 1(GLSL.std.450) 28(Log) 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 + 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 + 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 + 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 + 667: 48(fvec4) Load 53(inF0) + 668: 48(fvec4) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 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 + 675: 48(fvec4) Load 53(inF0) + 676: 48(fvec4) ExtInst 1(GLSL.std.450) 13(Sin) 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 + 681: 48(fvec4) Load 53(inF0) + 682: 48(fvec4) ExtInst 1(GLSL.std.450) 19(Sinh) 681 + 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 + 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 + 694: 48(fvec4) Load 53(inF0) + 695: 48(fvec4) ExtInst 1(GLSL.std.450) 21(Tanh) 694 + 696: 48(fvec4) Load 53(inF0) + 697: 48(fvec4) ExtInst 1(GLSL.std.450) 3(Trunc) 696 + ReturnValue 699 + 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 + 706: 60 Load 63(inF0) + 707: 60 ExtInst 1(GLSL.std.450) 17(Acos) 706 + 708: 60 Load 63(inF0) + 709: 132(bool) Any 708 + 710: 60 Load 63(inF0) + 711: 60 ExtInst 1(GLSL.std.450) 16(Asin) 710 + 712: 60 Load 63(inF0) + 713: 60 ExtInst 1(GLSL.std.450) 18(Atan) 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 + 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 + 725: 60 Load 63(inF0) + 726: 60 ExtInst 1(GLSL.std.450) 20(Cosh) 725 + 727: 60 Load 63(inF0) + 728: 60 ExtInst 1(GLSL.std.450) 12(Degrees) 727 + 729: 60 Load 63(inF0) + 730: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 729 + 731: 60 Load 63(inF0) + 732: 60 ExtInst 1(GLSL.std.450) 27(Exp) 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 + 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 + 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 + 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 + 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 + 780: 60 Load 63(inF0) + 781: 60 ExtInst 1(GLSL.std.450) 2(RoundEven) 780 + 782: 60 Load 63(inF0) + 783: 60 ExtInst 1(GLSL.std.450) 32(InverseSqrt) 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 + 790: 60 Load 63(inF0) + 791: 60 ExtInst 1(GLSL.std.450) 13(Sin) 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 + 796: 60 Load 63(inF0) + 797: 60 ExtInst 1(GLSL.std.450) 19(Sinh) 796 + 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 + 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 + 809: 60 Load 63(inF0) + 810: 60 ExtInst 1(GLSL.std.450) 21(Tanh) 809 + 811: 60 Load 63(inF0) + 812: 60 Transpose 811 + 813: 60 Load 63(inF0) + 814: 60 ExtInst 1(GLSL.std.450) 3(Trunc) 813 + ReturnValue 816 + 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 + 823: 68 Load 71(inF0) + 824: 68 ExtInst 1(GLSL.std.450) 17(Acos) 823 + 825: 68 Load 71(inF0) + 826: 132(bool) Any 825 + 827: 68 Load 71(inF0) + 828: 68 ExtInst 1(GLSL.std.450) 16(Asin) 827 + 829: 68 Load 71(inF0) + 830: 68 ExtInst 1(GLSL.std.450) 18(Atan) 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 + 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 + 842: 68 Load 71(inF0) + 843: 68 ExtInst 1(GLSL.std.450) 20(Cosh) 842 + 844: 68 Load 71(inF0) + 845: 68 ExtInst 1(GLSL.std.450) 12(Degrees) 844 + 846: 68 Load 71(inF0) + 847: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 846 + 848: 68 Load 71(inF0) + 849: 68 ExtInst 1(GLSL.std.450) 27(Exp) 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 + 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 + 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 + 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 + 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 + 900: 68 Load 71(inF0) + 901: 68 ExtInst 1(GLSL.std.450) 2(RoundEven) 900 + 902: 68 Load 71(inF0) + 903: 68 ExtInst 1(GLSL.std.450) 32(InverseSqrt) 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 + 910: 68 Load 71(inF0) + 911: 68 ExtInst 1(GLSL.std.450) 13(Sin) 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 + 916: 68 Load 71(inF0) + 917: 68 ExtInst 1(GLSL.std.450) 19(Sinh) 916 + 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 + 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 + 929: 68 Load 71(inF0) + 930: 68 ExtInst 1(GLSL.std.450) 21(Tanh) 929 + 931: 68 Load 71(inF0) + 932: 68 Transpose 931 + 933: 68 Load 71(inF0) + 934: 68 ExtInst 1(GLSL.std.450) 3(Trunc) 933 + ReturnValue 936 + 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 + 943: 76 Load 79(inF0) + 944: 76 ExtInst 1(GLSL.std.450) 17(Acos) 943 + 945: 76 Load 79(inF0) + 946: 132(bool) Any 945 + 947: 76 Load 79(inF0) + 948: 76 ExtInst 1(GLSL.std.450) 16(Asin) 947 + 949: 76 Load 79(inF0) + 950: 76 ExtInst 1(GLSL.std.450) 18(Atan) 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 + 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 + 962: 76 Load 79(inF0) + 963: 76 ExtInst 1(GLSL.std.450) 20(Cosh) 962 + 964: 76 Load 79(inF0) + 965: 76 ExtInst 1(GLSL.std.450) 12(Degrees) 964 + 966: 76 Load 79(inF0) + 967: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 966 + 968: 76 Load 79(inF0) + 969: 76 ExtInst 1(GLSL.std.450) 27(Exp) 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 + 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 + 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 + 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 + 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 + 1023: 76 Load 79(inF0) + 1024: 76 ExtInst 1(GLSL.std.450) 2(RoundEven) 1023 + 1025: 76 Load 79(inF0) + 1026: 76 ExtInst 1(GLSL.std.450) 32(InverseSqrt) 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 + 1033: 76 Load 79(inF0) + 1034: 76 ExtInst 1(GLSL.std.450) 13(Sin) 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 + 1039: 76 Load 79(inF0) + 1040: 76 ExtInst 1(GLSL.std.450) 19(Sinh) 1039 + 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 + 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 + 1052: 76 Load 79(inF0) + 1053: 76 ExtInst 1(GLSL.std.450) 21(Tanh) 1052 + 1054: 76 Load 79(inF0) + 1055: 76 Transpose 1054 + 1056: 76 Load 79(inF0) + 1057: 76 ExtInst 1(GLSL.std.450) 3(Trunc) 1056 + ReturnValue 1059 + FunctionEnd +91(TestGenMul2(f1;f1;vf2;vf2;mf22;mf22;): 2 Function None 84 + 85(inF0): 7(ptr) FunctionParameter + 86(inF1): 7(ptr) FunctionParameter + 87(inFV0): 25(ptr) FunctionParameter + 88(inFV1): 25(ptr) FunctionParameter + 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 85(inF0) + 1064: 6(float) Load 86(inF1) + 1065: 6(float) FMul 1063 1064 + Store 1062(r0) 1065 + 1067: 24(fvec2) Load 87(inFV0) + 1068: 6(float) Load 85(inF0) + 1069: 24(fvec2) VectorTimesScalar 1067 1068 + Store 1066(r1) 1069 + 1071: 6(float) Load 85(inF0) + 1072: 24(fvec2) Load 87(inFV0) + 1073: 24(fvec2) VectorTimesScalar 1072 1071 + 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: 60 Load 89(inFM0) + 1080: 24(fvec2) Load 87(inFV0) + 1081: 24(fvec2) MatrixTimesVector 1079 1080 + Store 1078(r4) 1081 + 1083: 24(fvec2) Load 87(inFV0) + 1084: 60 Load 89(inFM0) + 1085: 24(fvec2) VectorTimesMatrix 1083 1084 + Store 1082(r5) 1085 + 1087: 60 Load 89(inFM0) + 1088: 6(float) Load 85(inF0) + 1089: 60 MatrixTimesScalar 1087 1088 + Store 1086(r6) 1089 + 1091: 6(float) Load 85(inF0) + 1092: 60 Load 89(inFM0) + 1093: 60 MatrixTimesScalar 1092 1091 + Store 1090(r7) 1093 + 1095: 60 Load 89(inFM0) + 1096: 60 Load 90(inFM1) + 1097: 60 MatrixTimesMatrix 1095 1096 + Store 1094(r8) 1097 Return FunctionEnd -32(TestGenMul(f1;f1;vf3;vf3;mf33;mf33;): 2 Function None 25 - 26(inF0): 7(ptr) FunctionParameter - 27(inF1): 7(ptr) FunctionParameter - 28(inFV0): 22(ptr) FunctionParameter - 29(inFV1): 22(ptr) FunctionParameter - 30(inFM0): 24(ptr) FunctionParameter - 31(inFM1): 24(ptr) FunctionParameter - 33: Label - 1018(r0): 7(ptr) Variable Function - 1022(r1): 22(ptr) Variable Function - 1026(r2): 22(ptr) Variable Function - 1030(r3): 7(ptr) Variable Function - 1034(r4): 22(ptr) Variable Function - 1038(r5): 22(ptr) Variable Function - 1042(r6): 24(ptr) Variable Function - 1046(r7): 24(ptr) Variable Function - 1050(r8): 24(ptr) Variable Function - 1019: 6(float) Load 26(inF0) - 1020: 6(float) Load 27(inF1) - 1021: 6(float) FMul 1019 1020 - Store 1018(r0) 1021 - 1023: 21(fvec3) Load 28(inFV0) - 1024: 6(float) Load 26(inF0) - 1025: 21(fvec3) VectorTimesScalar 1023 1024 - Store 1022(r1) 1025 - 1027: 6(float) Load 26(inF0) - 1028: 21(fvec3) Load 28(inFV0) - 1029: 21(fvec3) VectorTimesScalar 1028 1027 - Store 1026(r2) 1029 - 1031: 21(fvec3) Load 28(inFV0) - 1032: 21(fvec3) Load 29(inFV1) - 1033: 6(float) Dot 1031 1032 - Store 1030(r3) 1033 - 1035: 23 Load 30(inFM0) - 1036: 21(fvec3) Load 28(inFV0) - 1037: 21(fvec3) MatrixTimesVector 1035 1036 - Store 1034(r4) 1037 - 1039: 21(fvec3) Load 28(inFV0) - 1040: 23 Load 30(inFM0) - 1041: 21(fvec3) VectorTimesMatrix 1039 1040 - Store 1038(r5) 1041 - 1043: 23 Load 30(inFM0) - 1044: 6(float) Load 26(inF0) - 1045: 23 MatrixTimesScalar 1043 1044 - Store 1042(r6) 1045 - 1047: 6(float) Load 26(inF0) - 1048: 23 Load 30(inFM0) - 1049: 23 MatrixTimesScalar 1048 1047 - Store 1046(r7) 1049 - 1051: 23 Load 30(inFM0) - 1052: 23 Load 31(inFM1) - 1053: 23 MatrixTimesMatrix 1051 1052 - Store 1050(r8) 1053 +100(TestGenMul3(f1;f1;vf3;vf3;mf33;mf33;): 2 Function None 93 + 94(inF0): 7(ptr) FunctionParameter + 95(inF1): 7(ptr) FunctionParameter + 96(inFV0): 37(ptr) FunctionParameter + 97(inFV1): 37(ptr) FunctionParameter + 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 94(inF0) + 1100: 6(float) Load 95(inF1) + 1101: 6(float) FMul 1099 1100 + Store 1098(r0) 1101 + 1103: 36(fvec3) Load 96(inFV0) + 1104: 6(float) Load 94(inF0) + 1105: 36(fvec3) VectorTimesScalar 1103 1104 + Store 1102(r1) 1105 + 1107: 6(float) Load 94(inF0) + 1108: 36(fvec3) Load 96(inFV0) + 1109: 36(fvec3) VectorTimesScalar 1108 1107 + 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: 68 Load 98(inFM0) + 1116: 36(fvec3) Load 96(inFV0) + 1117: 36(fvec3) MatrixTimesVector 1115 1116 + Store 1114(r4) 1117 + 1119: 36(fvec3) Load 96(inFV0) + 1120: 68 Load 98(inFM0) + 1121: 36(fvec3) VectorTimesMatrix 1119 1120 + Store 1118(r5) 1121 + 1123: 68 Load 98(inFM0) + 1124: 6(float) Load 94(inF0) + 1125: 68 MatrixTimesScalar 1123 1124 + Store 1122(r6) 1125 + 1127: 6(float) Load 94(inF0) + 1128: 68 Load 98(inFM0) + 1129: 68 MatrixTimesScalar 1128 1127 + Store 1126(r7) 1129 + 1131: 68 Load 98(inFM0) + 1132: 68 Load 99(inFM1) + 1133: 68 MatrixTimesMatrix 1131 1132 + Store 1130(r8) 1133 Return FunctionEnd -45(TestGenMul(f1;f1;vf4;vf4;mf44;mf44;): 2 Function None 38 - 39(inF0): 7(ptr) FunctionParameter - 40(inF1): 7(ptr) FunctionParameter - 41(inFV0): 35(ptr) FunctionParameter - 42(inFV1): 35(ptr) FunctionParameter - 43(inFM0): 37(ptr) FunctionParameter - 44(inFM1): 37(ptr) FunctionParameter - 46: Label - 1054(r0): 7(ptr) Variable Function - 1058(r1): 35(ptr) Variable Function - 1062(r2): 35(ptr) Variable Function - 1066(r3): 7(ptr) Variable Function - 1070(r4): 35(ptr) Variable Function - 1074(r5): 35(ptr) Variable Function - 1078(r6): 37(ptr) Variable Function - 1082(r7): 37(ptr) Variable Function - 1086(r8): 37(ptr) Variable Function - 1055: 6(float) Load 39(inF0) - 1056: 6(float) Load 40(inF1) - 1057: 6(float) FMul 1055 1056 - Store 1054(r0) 1057 - 1059: 34(fvec4) Load 41(inFV0) - 1060: 6(float) Load 39(inF0) - 1061: 34(fvec4) VectorTimesScalar 1059 1060 - Store 1058(r1) 1061 - 1063: 6(float) Load 39(inF0) - 1064: 34(fvec4) Load 41(inFV0) - 1065: 34(fvec4) VectorTimesScalar 1064 1063 - Store 1062(r2) 1065 - 1067: 34(fvec4) Load 41(inFV0) - 1068: 34(fvec4) Load 42(inFV1) - 1069: 6(float) Dot 1067 1068 - Store 1066(r3) 1069 - 1071: 36 Load 43(inFM0) - 1072: 34(fvec4) Load 41(inFV0) - 1073: 34(fvec4) MatrixTimesVector 1071 1072 - Store 1070(r4) 1073 - 1075: 34(fvec4) Load 41(inFV0) - 1076: 36 Load 43(inFM0) - 1077: 34(fvec4) VectorTimesMatrix 1075 1076 - Store 1074(r5) 1077 - 1079: 36 Load 43(inFM0) - 1080: 6(float) Load 39(inF0) - 1081: 36 MatrixTimesScalar 1079 1080 - Store 1078(r6) 1081 - 1083: 6(float) Load 39(inF0) - 1084: 36 Load 43(inFM0) - 1085: 36 MatrixTimesScalar 1084 1083 - Store 1082(r7) 1085 - 1087: 36 Load 43(inFM0) - 1088: 36 Load 44(inFM1) - 1089: 36 MatrixTimesMatrix 1087 1088 - Store 1086(r8) 1089 +109(TestGenMul4(f1;f1;vf4;vf4;mf44;mf44;): 2 Function None 102 + 103(inF0): 7(ptr) FunctionParameter + 104(inF1): 7(ptr) FunctionParameter + 105(inFV0): 49(ptr) FunctionParameter + 106(inFV1): 49(ptr) FunctionParameter + 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 103(inF0) + 1136: 6(float) Load 104(inF1) + 1137: 6(float) FMul 1135 1136 + Store 1134(r0) 1137 + 1139: 48(fvec4) Load 105(inFV0) + 1140: 6(float) Load 103(inF0) + 1141: 48(fvec4) VectorTimesScalar 1139 1140 + Store 1138(r1) 1141 + 1143: 6(float) Load 103(inF0) + 1144: 48(fvec4) Load 105(inFV0) + 1145: 48(fvec4) VectorTimesScalar 1144 1143 + 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: 76 Load 107(inFM0) + 1152: 48(fvec4) Load 105(inFV0) + 1153: 48(fvec4) MatrixTimesVector 1151 1152 + Store 1150(r4) 1153 + 1155: 48(fvec4) Load 105(inFV0) + 1156: 76 Load 107(inFM0) + 1157: 48(fvec4) VectorTimesMatrix 1155 1156 + Store 1154(r5) 1157 + 1159: 76 Load 107(inFM0) + 1160: 6(float) Load 103(inF0) + 1161: 76 MatrixTimesScalar 1159 1160 + Store 1158(r6) 1161 + 1163: 6(float) Load 103(inF0) + 1164: 76 Load 107(inFM0) + 1165: 76 MatrixTimesScalar 1164 1163 + Store 1162(r7) 1165 + 1167: 76 Load 107(inFM0) + 1168: 76 Load 108(inFM1) + 1169: 76 MatrixTimesMatrix 1167 1168 + Store 1166(r8) 1169 + Return + FunctionEnd +129(TestGenMulNxM(f1;f1;vf2;vf3;mf32;mf23;mf33;mf43;mf42;): 2 Function None 119 + 120(inF0): 7(ptr) FunctionParameter + 121(inF1): 7(ptr) FunctionParameter + 122(inFV2): 25(ptr) FunctionParameter + 123(inFV3): 37(ptr) FunctionParameter + 124(inFM2x3): 112(ptr) FunctionParameter + 125(inFM3x2): 114(ptr) FunctionParameter + 126(inFM3x3): 69(ptr) FunctionParameter + 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 120(inF0) + 1172: 6(float) Load 121(inF1) + 1173: 6(float) FMul 1171 1172 + Store 1170(r00) 1173 + 1175: 24(fvec2) Load 122(inFV2) + 1176: 6(float) Load 120(inF0) + 1177: 24(fvec2) VectorTimesScalar 1175 1176 + Store 1174(r01) 1177 + 1179: 36(fvec3) Load 123(inFV3) + 1180: 6(float) Load 120(inF0) + 1181: 36(fvec3) VectorTimesScalar 1179 1180 + Store 1178(r02) 1181 + 1183: 6(float) Load 120(inF0) + 1184: 24(fvec2) Load 122(inFV2) + 1185: 24(fvec2) VectorTimesScalar 1184 1183 + Store 1182(r03) 1185 + 1187: 6(float) Load 120(inF0) + 1188: 36(fvec3) Load 123(inFV3) + 1189: 36(fvec3) VectorTimesScalar 1188 1187 + 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: 24(fvec2) Load 122(inFV2) + 1200: 111 Load 124(inFM2x3) + 1201: 36(fvec3) VectorTimesMatrix 1199 1200 + Store 1198(r07) 1201 + 1203: 36(fvec3) Load 123(inFV3) + 1204: 113 Load 125(inFM3x2) + 1205: 24(fvec2) VectorTimesMatrix 1203 1204 + Store 1202(r08) 1205 + 1207: 111 Load 124(inFM2x3) + 1208: 36(fvec3) Load 123(inFV3) + 1209: 24(fvec2) MatrixTimesVector 1207 1208 + Store 1206(r09) 1209 + 1211: 113 Load 125(inFM3x2) + 1212: 24(fvec2) Load 122(inFV2) + 1213: 36(fvec3) MatrixTimesVector 1211 1212 + Store 1210(r10) 1213 + 1215: 111 Load 124(inFM2x3) + 1216: 6(float) Load 120(inF0) + 1217: 111 MatrixTimesScalar 1215 1216 + Store 1214(r11) 1217 + 1219: 113 Load 125(inFM3x2) + 1220: 6(float) Load 120(inF0) + 1221: 113 MatrixTimesScalar 1219 1220 + Store 1218(r12) 1221 + 1223: 111 Load 124(inFM2x3) + 1224: 113 Load 125(inFM3x2) + 1225: 60 MatrixTimesMatrix 1223 1224 + Store 1222(r13) 1225 + 1227: 111 Load 124(inFM2x3) + 1228: 68 Load 126(inFM3x3) + 1229: 111 MatrixTimesMatrix 1227 1228 + Store 1226(r14) 1229 + 1231: 111 Load 124(inFM2x3) + 1232: 115 Load 127(inFM3x4) + 1233: 117 MatrixTimesMatrix 1231 1232 + Store 1230(r15) 1233 + 1235: 113 Load 125(inFM3x2) + 1236: 117 Load 128(inFM2x4) + 1237: 115 MatrixTimesMatrix 1235 1236 + Store 1234(r16) 1237 Return FunctionEnd diff --git a/Test/baseResults/hlsl.matType.frag.out b/Test/baseResults/hlsl.matType.frag.out index 40dbd89f..b081a4af 100755 --- a/Test/baseResults/hlsl.matType.frag.out +++ b/Test/baseResults/hlsl.matType.frag.out @@ -2,21 +2,22 @@ hlsl.matType.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:1 move second child to first child (temp 1-component vector of float) -0:1 'f1' (temp 1-component vector of float) -0:1 Constant: -0:1 1.000000 -0:11 Function Definition: ShaderFunction(vf1;f1; (temp 1-component vector of float) +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:11 Function Definition: ShaderFunction(vf1;f1; (global 1-component vector of float) 0:9 Function Parameters: 0:9 'inFloat1' (in 1-component vector of float) 0:9 'inScalar' (in float) 0:? Linker Objects -0:? 'f1' (temp 1-component vector of float) -0:? 'fmat11' (temp 1X1 matrix of float) -0:? 'fmat41' (temp 1X4 matrix of float) -0:? 'fmat12' (temp 2X1 matrix of float) -0:? 'dmat23' (temp 3X2 matrix of double) -0:? 'int44' (temp 4X4 matrix of int) +0:? 'f1' (global 1-component vector of float) +0:? 'fmat11' (global 1X1 matrix of float) +0:? 'fmat41' (global 1X4 matrix of float) +0:? 'fmat12' (global 2X1 matrix of float) +0:? 'dmat23' (global 3X2 matrix of double) +0:? 'int44' (global 4X4 matrix of int) Linked fragment stage: @@ -25,25 +26,26 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:1 move second child to first child (temp 1-component vector of float) -0:1 'f1' (temp 1-component vector of float) -0:1 Constant: -0:1 1.000000 -0:11 Function Definition: ShaderFunction(vf1;f1; (temp 1-component vector of float) +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:11 Function Definition: ShaderFunction(vf1;f1; (global 1-component vector of float) 0:9 Function Parameters: 0:9 'inFloat1' (in 1-component vector of float) 0:9 'inScalar' (in float) 0:? Linker Objects -0:? 'f1' (temp 1-component vector of float) -0:? 'fmat11' (temp 1X1 matrix of float) -0:? 'fmat41' (temp 1X4 matrix of float) -0:? 'fmat12' (temp 2X1 matrix of float) -0:? 'dmat23' (temp 3X2 matrix of double) -0:? 'int44' (temp 4X4 matrix of int) +0:? 'f1' (global 1-component vector of float) +0:? 'fmat11' (global 1X1 matrix of float) +0:? 'fmat41' (global 1X4 matrix of float) +0:? 'fmat12' (global 2X1 matrix of float) +0:? 'dmat23' (global 3X2 matrix of double) +0:? 'int44' (global 4X4 matrix of int) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 36 +// Id's are bound by 38 Capability Shader Capability Float64 @@ -57,45 +59,48 @@ gl_FragCoord origin is upper left Name 9 "inFloat1" Name 10 "inScalar" Name 14 "f1" - Name 18 "fmat11" - Name 22 "fmat41" - Name 25 "fmat12" - Name 30 "dmat23" - Name 35 "int44" + Name 20 "fmat11" + Name 24 "fmat41" + Name 27 "fmat12" + Name 32 "dmat23" + Name 37 "int44" 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypePointer Function 6(float) 8: TypeFunction 6(float) 7(ptr) 7(ptr) - 15: TypeVector 6(float) 1 - 16: TypeMatrix 15(fvec) 1 - 17: TypePointer Function 16 - 19: TypeVector 6(float) 4 - 20: TypeMatrix 19(fvec4) 1 - 21: TypePointer Function 20 - 23: TypeMatrix 15(fvec) 2 - 24: TypePointer Function 23 - 26: TypeFloat 64 - 27: TypeVector 26(float) 2 - 28: TypeMatrix 27(fvec2) 3 - 29: TypePointer Function 28 - 31: TypeInt 32 1 - 32: TypeVector 31(int) 4 - 33: TypeMatrix 32(ivec4) 4 - 34: TypePointer Function 33 + 13: TypePointer Private 6(float) + 14(f1): 13(ptr) Variable Private + 15: 6(float) Constant 1065353216 + 17: TypeVector 6(float) 1 + 18: TypeMatrix 17(fvec) 1 + 19: TypePointer Private 18 + 20(fmat11): 19(ptr) Variable Private + 21: TypeVector 6(float) 4 + 22: TypeMatrix 21(fvec4) 1 + 23: TypePointer Private 22 + 24(fmat41): 23(ptr) Variable Private + 25: TypeMatrix 17(fvec) 2 + 26: TypePointer Private 25 + 27(fmat12): 26(ptr) Variable Private + 28: TypeFloat 64 + 29: TypeVector 28(float) 2 + 30: TypeMatrix 29(fvec2) 3 + 31: TypePointer Private 30 + 32(dmat23): 31(ptr) Variable Private + 33: TypeInt 32 1 + 34: TypeVector 33(int) 4 + 35: TypeMatrix 34(ivec4) 4 + 36: TypePointer Private 35 + 37(int44): 36(ptr) Variable Private 4(PixelShaderFunction): 2 Function None 3 5: Label + Store 14(f1) 15 FunctionEnd 11(ShaderFunction(vf1;f1;): 6(float) Function None 8 9(inFloat1): 7(ptr) FunctionParameter 10(inScalar): 7(ptr) FunctionParameter 12: Label - 14(f1): 7(ptr) Variable Function - 18(fmat11): 17(ptr) Variable Function - 22(fmat41): 21(ptr) Variable Function - 25(fmat12): 24(ptr) Variable Function - 30(dmat23): 29(ptr) Variable Function - 35(int44): 34(ptr) Variable Function - 13: 6(float) Undef - ReturnValue 13 + 16: 6(float) Undef + ReturnValue 16 FunctionEnd diff --git a/Test/baseResults/hlsl.max.frag.out b/Test/baseResults/hlsl.max.frag.out index 02f82bfe..aad47997 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:5 Function Definition: PixelShaderFunction(vf4;vf4; (temp 4-component vector of float) +0:5 Function Definition: PixelShaderFunction(vf4;vf4; (global 4-component vector of float) 0:2 Function Parameters: 0:2 'input1' (in 4-component vector of float) 0:2 'input2' (in 4-component vector of float) @@ -20,7 +20,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:5 Function Definition: PixelShaderFunction(vf4;vf4; (temp 4-component vector of float) +0:5 Function Definition: PixelShaderFunction(vf4;vf4; (global 4-component vector of float) 0:2 Function Parameters: 0:2 'input1' (in 4-component vector of float) 0:2 'input2' (in 4-component vector of float) diff --git a/Test/baseResults/hlsl.precedence.frag.out b/Test/baseResults/hlsl.precedence.frag.out index 40e17894..d3513538 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:10 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vf4; (temp 4-component vector of float) +0:10 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vf4; (global 4-component vector of float) 0:7 Function Parameters: 0:7 'a1' (in 4-component vector of float) 0:7 'a2' (in 4-component vector of float) @@ -26,7 +26,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:10 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vf4; (temp 4-component vector of float) +0:10 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vf4; (global 4-component vector of float) 0:7 Function Parameters: 0:7 'a1' (in 4-component vector of float) 0:7 'a2' (in 4-component vector of float) diff --git a/Test/baseResults/hlsl.precedence2.frag.out b/Test/baseResults/hlsl.precedence2.frag.out index 02b89951..bfe2643c 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:10 Function Definition: PixelShaderFunction(i1;i1;i1;i1; (temp int) +0:10 Function Definition: PixelShaderFunction(i1;i1;i1;i1; (global int) 0:7 Function Parameters: 0:7 'a1' (in int) 0:7 'a2' (in int) @@ -34,7 +34,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:10 Function Definition: PixelShaderFunction(i1;i1;i1;i1; (temp int) +0:10 Function Definition: PixelShaderFunction(i1;i1;i1;i1; (global int) 0:7 Function Parameters: 0:7 'a1' (in int) 0:7 'a2' (in int) diff --git a/Test/baseResults/hlsl.scope.frag.out b/Test/baseResults/hlsl.scope.frag.out index 97ac03e9..082e1427 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:31 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) +0:31 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) 0:2 Function Parameters: 0:2 'input' (in 4-component vector of float) 0:? Sequence @@ -46,7 +46,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:31 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) +0:31 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) 0:2 Function Parameters: 0:2 'input' (in 4-component vector of float) 0:? Sequence diff --git a/Test/baseResults/hlsl.sin.frag.out b/Test/baseResults/hlsl.sin.frag.out index c4875d52..e145ab18 100755 --- a/Test/baseResults/hlsl.sin.frag.out +++ b/Test/baseResults/hlsl.sin.frag.out @@ -2,7 +2,7 @@ hlsl.sin.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:5 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) +0:5 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) 0:2 Function Parameters: 0:2 'input' (in 4-component vector of float) 0:? Sequence @@ -18,7 +18,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:5 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) +0:5 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) 0:2 Function Parameters: 0:2 'input' (in 4-component vector of float) 0:? Sequence diff --git a/Test/baseResults/hlsl.struct.frag.out b/Test/baseResults/hlsl.struct.frag.out index 43b1ecb3..a70bba60 100755 --- a/Test/baseResults/hlsl.struct.frag.out +++ b/Test/baseResults/hlsl.struct.frag.out @@ -2,7 +2,7 @@ hlsl.struct.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:40 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) +0:40 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) 0:31 Function Parameters: 0:31 'input' (in 4-component vector of float) 0:? Sequence @@ -11,19 +11,19 @@ gl_FragCoord origin is upper left 0:36 's3' (temp structure{temp 3-component vector of bool b3}) 0:37 move second child to first child (temp 4-component vector of float) 0:37 i: direct index for structure (temp 4-component vector of float) -0:37 's2' (temp structure{temp 4-component vector of float i}) +0:37 's2' (global structure{temp 4-component vector of float i}) 0:37 Constant: 0:37 0 (const int) 0:37 ff4: direct index for structure (temp 4-component vector of float FragCoord) -0:37 's4' (temp structure{smooth in 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float FragCoord ff4}) +0:37 's4' (global structure{smooth in 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float FragCoord ff4}) 0:37 Constant: 0:37 7 (const int) 0:39 Branch: Return with expression 0:39 'input' (in 4-component vector of float) 0:? Linker Objects -0:? 's1' (temp structure{temp bool b, temp bool c, temp 4-component vector of float a, temp 4-component vector of float d}) -0:? 's2' (temp structure{temp 4-component vector of float i}) -0:? 's4' (temp structure{smooth in 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float FragCoord ff4}) +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:? 's4' (global structure{smooth in 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float FragCoord ff4}) Linked fragment stage: @@ -32,7 +32,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:40 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) +0:40 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) 0:31 Function Parameters: 0:31 'input' (in 4-component vector of float) 0:? Sequence @@ -41,19 +41,19 @@ gl_FragCoord origin is upper left 0:36 's3' (temp structure{temp 3-component vector of bool b3}) 0:37 move second child to first child (temp 4-component vector of float) 0:37 i: direct index for structure (temp 4-component vector of float) -0:37 's2' (temp structure{temp 4-component vector of float i}) +0:37 's2' (global structure{temp 4-component vector of float i}) 0:37 Constant: 0:37 0 (const int) 0:37 ff4: direct index for structure (temp 4-component vector of float FragCoord) -0:37 's4' (temp structure{smooth in 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float FragCoord ff4}) +0:37 's4' (global structure{smooth in 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float FragCoord ff4}) 0:37 Constant: 0:37 7 (const int) 0:39 Branch: Return with expression 0:39 'input' (in 4-component vector of float) 0:? Linker Objects -0:? 's1' (temp structure{temp bool b, temp bool c, temp 4-component vector of float a, temp 4-component vector of float d}) -0:? 's2' (temp structure{temp 4-component vector of float i}) -0:? 's4' (temp structure{smooth in 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float FragCoord ff4}) +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:? 's4' (global structure{smooth in 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float FragCoord ff4}) // Module Version 10000 // Generated by (magic number): 80001 @@ -100,24 +100,24 @@ gl_FragCoord origin is upper left 17: TypeFloat 32 18: TypeVector 17(float) 4 19: TypeStruct 18(fvec4) - 20: TypePointer Function 19(struct) + 20: TypePointer Private 19(struct) + 21(s2): 20(ptr) Variable Private 22: TypeInt 32 1 23: 22(int) Constant 0 24: TypeVector 17(float) 2 25: TypeStruct 18(fvec4) 6(bool) 17(float) 24(fvec2) 6(bool) 6(bool) 6(bool) 18(fvec4) - 26: TypePointer Function 25(struct) + 26: TypePointer Private 25(struct) + 27(s4): 26(ptr) Variable Private 28: 22(int) Constant 7 - 29: TypePointer Function 18(fvec4) + 29: TypePointer Private 18(fvec4) 33: TypePointer Input 18(fvec4) 34(input): 33(ptr) Variable Input 37(myS): TypeStruct 6(bool) 6(bool) 18(fvec4) 18(fvec4) - 38: TypePointer Function 37(myS) + 38: TypePointer Private 37(myS) + 39(s1): 38(ptr) Variable Private 4(PixelShaderFunction): 2 Function None 3 5: Label 10(s3): 9(ptr) Variable Function - 21(s2): 20(ptr) Variable Function - 27(s4): 26(ptr) Variable Function - 39(s1): 38(ptr) Variable Function 11: 8(FS) Load 10(s3) 12: 8(FS) Load 10(s3) 13: 7(bvec3) CompositeExtract 11 0 diff --git a/Test/baseResults/hlsl.switch.frag.out b/Test/baseResults/hlsl.switch.frag.out new file mode 100755 index 00000000..c4af33f1 --- /dev/null +++ b/Test/baseResults/hlsl.switch.frag.out @@ -0,0 +1,376 @@ +hlsl.switch.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:56 Function Definition: PixelShaderFunction(vf4;i1;i1; (global 4-component vector of float) +0:2 Function Parameters: +0:2 'input' (in 4-component vector of float) +0:2 'c' (in int) +0:2 'd' (in int) +0:? Sequence +0:3 'c' (in int) +0:7 switch +0:7 condition +0:7 'c' (in int) +0:7 body +0:7 Sequence +0:9 default: +0:7 Sequence +0:7 Branch: Break +0:12 switch +0:12 condition +0:12 'c' (in int) +0:12 body +0:12 Sequence +0:13 case: with expression +0:13 Constant: +0:13 1 (const int) +0:? Sequence +0:14 Pre-Increment (temp 4-component vector of float) +0:14 'input' (in 4-component vector of float) +0:15 Branch: Break +0:16 case: with expression +0:16 Constant: +0:16 2 (const int) +0:? Sequence +0:17 Pre-Decrement (temp 4-component vector of float) +0:17 'input' (in 4-component vector of float) +0:18 Branch: Break +0:21 switch +0:21 condition +0:21 'c' (in int) +0:21 body +0:21 Sequence +0:22 case: with expression +0:22 Constant: +0:22 1 (const int) +0:? Sequence +0:23 Pre-Increment (temp 4-component vector of float) +0:23 'input' (in 4-component vector of float) +0:24 Branch: Break +0:25 case: with expression +0:25 Constant: +0:25 2 (const int) +0:? Sequence +0:26 switch +0:26 condition +0:26 'd' (in int) +0:26 body +0:26 Sequence +0:27 case: with expression +0:27 Constant: +0:27 2 (const int) +0:? Sequence +0:28 add second child into first child (temp 4-component vector of float) +0:28 'input' (in 4-component vector of float) +0:28 Constant: +0:28 2.000000 +0:29 Branch: Break +0:30 case: with expression +0:30 Constant: +0:30 3 (const int) +0:? Sequence +0:31 add second child into first child (temp 4-component vector of float) +0:31 'input' (in 4-component vector of float) +0:31 Constant: +0:31 3.000000 +0:32 Branch: Break +0:34 Branch: Break +0:35 default: +0:? Sequence +0:36 add second child into first child (temp 4-component vector of float) +0:36 'input' (in 4-component vector of float) +0:36 Constant: +0:36 4.000000 +0:39 switch +0:39 condition +0:39 'c' (in int) +0:39 body +0:39 Sequence +0:40 case: with expression +0:40 Constant: +0:40 1 (const int) +0:39 Sequence +0:39 Branch: Break +0:43 switch +0:43 condition +0:43 'c' (in int) +0:43 body +0:43 Sequence +0:44 case: with expression +0:44 Constant: +0:44 1 (const int) +0:45 case: with expression +0:45 Constant: +0:45 2 (const int) +0:46 case: with expression +0:46 Constant: +0:46 3 (const int) +0:? Sequence +0:47 Pre-Increment (temp 4-component vector of float) +0:47 'input' (in 4-component vector of float) +0:48 Branch: Break +0:49 case: with expression +0:49 Constant: +0:49 4 (const int) +0:50 case: with expression +0:50 Constant: +0:50 5 (const int) +0:? Sequence +0:51 Pre-Decrement (temp 4-component vector of float) +0:51 'input' (in 4-component vector of float) +0:54 Branch: Return with expression +0:54 'input' (in 4-component vector of float) +0:? Linker Objects + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:56 Function Definition: PixelShaderFunction(vf4;i1;i1; (global 4-component vector of float) +0:2 Function Parameters: +0:2 'input' (in 4-component vector of float) +0:2 'c' (in int) +0:2 'd' (in int) +0:? Sequence +0:3 'c' (in int) +0:7 switch +0:7 condition +0:7 'c' (in int) +0:7 body +0:7 Sequence +0:9 default: +0:7 Sequence +0:7 Branch: Break +0:12 switch +0:12 condition +0:12 'c' (in int) +0:12 body +0:12 Sequence +0:13 case: with expression +0:13 Constant: +0:13 1 (const int) +0:? Sequence +0:14 Pre-Increment (temp 4-component vector of float) +0:14 'input' (in 4-component vector of float) +0:15 Branch: Break +0:16 case: with expression +0:16 Constant: +0:16 2 (const int) +0:? Sequence +0:17 Pre-Decrement (temp 4-component vector of float) +0:17 'input' (in 4-component vector of float) +0:18 Branch: Break +0:21 switch +0:21 condition +0:21 'c' (in int) +0:21 body +0:21 Sequence +0:22 case: with expression +0:22 Constant: +0:22 1 (const int) +0:? Sequence +0:23 Pre-Increment (temp 4-component vector of float) +0:23 'input' (in 4-component vector of float) +0:24 Branch: Break +0:25 case: with expression +0:25 Constant: +0:25 2 (const int) +0:? Sequence +0:26 switch +0:26 condition +0:26 'd' (in int) +0:26 body +0:26 Sequence +0:27 case: with expression +0:27 Constant: +0:27 2 (const int) +0:? Sequence +0:28 add second child into first child (temp 4-component vector of float) +0:28 'input' (in 4-component vector of float) +0:28 Constant: +0:28 2.000000 +0:29 Branch: Break +0:30 case: with expression +0:30 Constant: +0:30 3 (const int) +0:? Sequence +0:31 add second child into first child (temp 4-component vector of float) +0:31 'input' (in 4-component vector of float) +0:31 Constant: +0:31 3.000000 +0:32 Branch: Break +0:34 Branch: Break +0:35 default: +0:? Sequence +0:36 add second child into first child (temp 4-component vector of float) +0:36 'input' (in 4-component vector of float) +0:36 Constant: +0:36 4.000000 +0:39 switch +0:39 condition +0:39 'c' (in int) +0:39 body +0:39 Sequence +0:40 case: with expression +0:40 Constant: +0:40 1 (const int) +0:39 Sequence +0:39 Branch: Break +0:43 switch +0:43 condition +0:43 'c' (in int) +0:43 body +0:43 Sequence +0:44 case: with expression +0:44 Constant: +0:44 1 (const int) +0:45 case: with expression +0:45 Constant: +0:45 2 (const int) +0:46 case: with expression +0:46 Constant: +0:46 3 (const int) +0:? Sequence +0:47 Pre-Increment (temp 4-component vector of float) +0:47 'input' (in 4-component vector of float) +0:48 Branch: Break +0:49 case: with expression +0:49 Constant: +0:49 4 (const int) +0:50 case: with expression +0:50 Constant: +0:50 5 (const int) +0:? Sequence +0:51 Pre-Decrement (temp 4-component vector of float) +0:51 'input' (in 4-component vector of float) +0:54 Branch: Return with expression +0:54 'input' (in 4-component vector of float) +0:? Linker Objects + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 82 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "PixelShaderFunction" 8 21 41 + ExecutionMode 4 OriginUpperLeft + Source HLSL 450 + Name 4 "PixelShaderFunction" + Name 8 "c" + Name 21 "input" + Name 41 "d" + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypePointer Input 6(int) + 8(c): 7(ptr) Variable Input + 18: TypeFloat 32 + 19: TypeVector 18(float) 4 + 20: TypePointer Input 19(fvec4) + 21(input): 20(ptr) Variable Input + 23: 18(float) Constant 1065353216 + 41(d): 7(ptr) Variable Input + 46: 18(float) Constant 1073741824 + 51: 18(float) Constant 1077936128 + 58: 18(float) Constant 1082130432 +4(PixelShaderFunction): 2 Function None 3 + 5: Label + 9: 6(int) Load 8(c) + SelectionMerge 11 None + Switch 9 10 + 10: Label + Branch 11 + 11: Label + 14: 6(int) Load 8(c) + SelectionMerge 17 None + Switch 14 17 + case 1: 15 + case 2: 16 + 15: Label + 22: 19(fvec4) Load 21(input) + 24: 19(fvec4) CompositeConstruct 23 23 23 23 + 25: 19(fvec4) FAdd 22 24 + Store 21(input) 25 + Branch 17 + 16: Label + 27: 19(fvec4) Load 21(input) + 28: 19(fvec4) CompositeConstruct 23 23 23 23 + 29: 19(fvec4) FSub 27 28 + Store 21(input) 29 + Branch 17 + 17: Label + 32: 6(int) Load 8(c) + SelectionMerge 36 None + Switch 32 35 + case 1: 33 + case 2: 34 + 35: Label + 59: 19(fvec4) Load 21(input) + 60: 19(fvec4) CompositeConstruct 58 58 58 58 + 61: 19(fvec4) FAdd 59 60 + Store 21(input) 61 + Branch 36 + 33: Label + 37: 19(fvec4) Load 21(input) + 38: 19(fvec4) CompositeConstruct 23 23 23 23 + 39: 19(fvec4) FAdd 37 38 + Store 21(input) 39 + Branch 36 + 34: Label + 42: 6(int) Load 41(d) + SelectionMerge 45 None + Switch 42 45 + case 2: 43 + case 3: 44 + 43: Label + 47: 19(fvec4) Load 21(input) + 48: 19(fvec4) CompositeConstruct 46 46 46 46 + 49: 19(fvec4) FAdd 47 48 + Store 21(input) 49 + Branch 45 + 44: Label + 52: 19(fvec4) Load 21(input) + 53: 19(fvec4) CompositeConstruct 51 51 51 51 + 54: 19(fvec4) FAdd 52 53 + Store 21(input) 54 + Branch 45 + 45: Label + Branch 36 + 36: Label + 63: 6(int) Load 8(c) + SelectionMerge 65 None + Switch 63 65 + case 1: 64 + 64: Label + Branch 65 + 65: Label + 68: 6(int) Load 8(c) + SelectionMerge 71 None + Switch 68 71 + case 1: 69 + case 2: 69 + case 3: 69 + case 4: 70 + case 5: 70 + 69: Label + 72: 19(fvec4) Load 21(input) + 73: 19(fvec4) CompositeConstruct 23 23 23 23 + 74: 19(fvec4) FAdd 72 73 + Store 21(input) 74 + Branch 71 + 70: Label + 76: 19(fvec4) Load 21(input) + 77: 19(fvec4) CompositeConstruct 23 23 23 23 + 78: 19(fvec4) FSub 76 77 + Store 21(input) 78 + Branch 71 + 71: Label + 80: 19(fvec4) Load 21(input) + ReturnValue 80 + FunctionEnd diff --git a/Test/baseResults/hlsl.swizzle.frag.out b/Test/baseResults/hlsl.swizzle.frag.out index ab9a0cc2..7bb28180 100755 --- a/Test/baseResults/hlsl.swizzle.frag.out +++ b/Test/baseResults/hlsl.swizzle.frag.out @@ -2,14 +2,15 @@ hlsl.swizzle.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:1 move second child to first child (temp 4-component vector of float) -0:1 'AmbientColor' (temp 4-component vector of float) -0:? Constant: -0:? 1.000000 -0:? 0.500000 -0:? 0.000000 -0:? 1.000000 -0:7 Function Definition: ShaderFunction(vf4; (temp 4-component vector of float) +0: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:7 Function Definition: ShaderFunction(vf4; (global 4-component vector of float) 0:4 Function Parameters: 0:4 'input' (in 4-component vector of float) 0:? Sequence @@ -28,11 +29,11 @@ gl_FragCoord origin is upper left 0:5 0 (const int) 0:5 Construct vec4 (temp 4-component vector of float) 0:5 direct index (temp float) -0:5 'AmbientColor' (temp 4-component vector of float) +0:5 'AmbientColor' (global 4-component vector of float) 0:5 Constant: 0:5 2 (const int) 0:? Linker Objects -0:? 'AmbientColor' (temp 4-component vector of float) +0:? 'AmbientColor' (global 4-component vector of float) Linked fragment stage: @@ -41,14 +42,15 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:1 move second child to first child (temp 4-component vector of float) -0:1 'AmbientColor' (temp 4-component vector of float) -0:? Constant: -0:? 1.000000 -0:? 0.500000 -0:? 0.000000 -0:? 1.000000 -0:7 Function Definition: ShaderFunction(vf4; (temp 4-component vector of float) +0: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:7 Function Definition: ShaderFunction(vf4; (global 4-component vector of float) 0:4 Function Parameters: 0:4 'input' (in 4-component vector of float) 0:? Sequence @@ -67,15 +69,15 @@ gl_FragCoord origin is upper left 0:5 0 (const int) 0:5 Construct vec4 (temp 4-component vector of float) 0:5 direct index (temp float) -0:5 'AmbientColor' (temp 4-component vector of float) +0:5 'AmbientColor' (global 4-component vector of float) 0:5 Constant: 0:5 2 (const int) 0:? Linker Objects -0:? 'AmbientColor' (temp 4-component vector of float) +0:? 'AmbientColor' (global 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 25 +// Id's are bound by 30 Capability Shader 1: ExtInstImport "GLSL.std.450" @@ -86,28 +88,34 @@ gl_FragCoord origin is upper left Name 4 "PixelShaderFunction" Name 11 "ShaderFunction(vf4;" Name 10 "input" - Name 15 "AmbientColor" + Name 14 "AmbientColor" 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 8: TypePointer Function 7(fvec4) 9: TypeFunction 7(fvec4) 8(ptr) - 16: TypeInt 32 0 - 17: 16(int) Constant 2 - 18: TypePointer Function 6(float) + 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 + 21: TypeInt 32 0 + 22: 21(int) Constant 2 + 23: TypePointer Private 6(float) 4(PixelShaderFunction): 2 Function None 3 5: Label + Store 14(AmbientColor) 18 FunctionEnd 11(ShaderFunction(vf4;): 7(fvec4) Function None 9 10(input): 8(ptr) FunctionParameter 12: Label -15(AmbientColor): 8(ptr) Variable Function - 13: 7(fvec4) Load 10(input) - 14: 7(fvec4) VectorShuffle 13 13 3 3 1 0 - 19: 18(ptr) AccessChain 15(AmbientColor) 17 - 20: 6(float) Load 19 - 21: 7(fvec4) CompositeConstruct 20 20 20 20 - 22: 7(fvec4) FMul 14 21 - ReturnValue 22 + 19: 7(fvec4) Load 10(input) + 20: 7(fvec4) VectorShuffle 19 19 3 3 1 0 + 24: 23(ptr) AccessChain 14(AmbientColor) 22 + 25: 6(float) Load 24 + 26: 7(fvec4) CompositeConstruct 25 25 25 25 + 27: 7(fvec4) FMul 20 26 + ReturnValue 27 FunctionEnd diff --git a/Test/baseResults/hlsl.templatetypes.frag.out b/Test/baseResults/hlsl.templatetypes.frag.out new file mode 100644 index 00000000..5acb877a --- /dev/null +++ b/Test/baseResults/hlsl.templatetypes.frag.out @@ -0,0 +1,707 @@ +hlsl.templatetypes.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:48 Function Definition: PixelShaderFunction( (global float) +0:3 Function Parameters: +0:? Sequence +0:4 Sequence +0:4 move second child to first child (temp 4-component vector of float) +0:4 'r00' (temp 4-component vector of float) +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:5 Sequence +0:5 move second child to first child (temp 4-component vector of float) +0:5 'r01' (temp 4-component vector of float) +0:? Constant: +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:? 5.000000 +0:7 Sequence +0:7 move second child to first child (temp 1-component vector of bool) +0:7 'r12' (temp 1-component vector of bool) +0:7 Constant: +0:7 false (const bool) +0:8 Sequence +0:8 move second child to first child (temp 1-component vector of int) +0:8 'r13' (temp 1-component vector of int) +0:8 Constant: +0:8 1 (const int) +0:9 Sequence +0:9 move second child to first child (temp 1-component vector of float) +0:9 'r14' (temp 1-component vector of float) +0:9 Constant: +0:9 1.000000 +0:10 Sequence +0:10 move second child to first child (temp 1-component vector of double) +0:10 'r15' (temp 1-component vector of double) +0:10 Constant: +0:10 1.000000 +0:11 Sequence +0:11 move second child to first child (temp 1-component vector of uint) +0:11 'r16' (temp 1-component vector of uint) +0:11 Constant: +0:11 1 (const uint) +0:13 Sequence +0:13 move second child to first child (temp 2-component vector of bool) +0:13 'r20' (temp 2-component vector of bool) +0:? Constant: +0:? false (const bool) +0:? true (const bool) +0:14 Sequence +0:14 move second child to first child (temp 2-component vector of int) +0:14 'r21' (temp 2-component vector of int) +0:? Constant: +0:? 1 (const int) +0:? 2 (const int) +0:15 Sequence +0:15 move second child to first child (temp 2-component vector of float) +0:15 'r22' (temp 2-component vector of float) +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:16 Sequence +0:16 move second child to first child (temp 2-component vector of double) +0:16 'r23' (temp 2-component vector of double) +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:17 Sequence +0:17 move second child to first child (temp 2-component vector of uint) +0:17 'r24' (temp 2-component vector of uint) +0:? Constant: +0:? 1 (const uint) +0:? 2 (const uint) +0:19 Sequence +0:19 move second child to first child (temp 3-component vector of bool) +0:19 'r30' (temp 3-component vector of bool) +0:? Constant: +0:? false (const bool) +0:? true (const bool) +0:? true (const bool) +0:20 Sequence +0:20 move second child to first child (temp 3-component vector of int) +0:20 'r31' (temp 3-component vector of int) +0:? Constant: +0:? 1 (const int) +0:? 2 (const int) +0:? 3 (const int) +0:21 Sequence +0:21 move second child to first child (temp 3-component vector of float) +0:21 'r32' (temp 3-component vector of float) +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:22 Sequence +0:22 move second child to first child (temp 3-component vector of double) +0:22 'r33' (temp 3-component vector of double) +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:23 Sequence +0:23 move second child to first child (temp 3-component vector of uint) +0:23 'r34' (temp 3-component vector of uint) +0:? Constant: +0:? 1 (const uint) +0:? 2 (const uint) +0:? 3 (const uint) +0:25 Sequence +0:25 move second child to first child (temp 4-component vector of bool) +0:25 'r40' (temp 4-component vector of bool) +0:? Constant: +0:? false (const bool) +0:? true (const bool) +0:? true (const bool) +0:? false (const bool) +0:26 Sequence +0:26 move second child to first child (temp 4-component vector of int) +0:26 'r41' (temp 4-component vector of int) +0:? Constant: +0:? 1 (const int) +0:? 2 (const int) +0:? 3 (const int) +0:? 4 (const int) +0:27 Sequence +0:27 move second child to first child (temp 4-component vector of float) +0:27 'r42' (temp 4-component vector of float) +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:28 Sequence +0:28 move second child to first child (temp 4-component vector of double) +0:28 'r43' (temp 4-component vector of double) +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:29 Sequence +0:29 move second child to first child (temp 4-component vector of uint) +0:29 'r44' (temp 4-component vector of uint) +0:? Constant: +0:? 1 (const uint) +0:? 2 (const uint) +0:? 3 (const uint) +0:? 4 (const uint) +0:31 Sequence +0:31 move second child to first child (temp 4X4 matrix of float) +0:31 'r50' (temp 4X4 matrix of float) +0:? Constant: +0:? 0.000000 +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:? 5.000000 +0:? 6.000000 +0:? 7.000000 +0:? 8.000000 +0:? 9.000000 +0:? 10.000000 +0:? 11.000000 +0:? 12.000000 +0:? 13.000000 +0:? 14.000000 +0:? 15.000000 +0:32 Sequence +0:32 move second child to first child (temp 4X4 matrix of float) +0:32 'r51' (temp 4X4 matrix of float) +0:? Constant: +0:? 0.000000 +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:? 5.000000 +0:? 6.000000 +0:? 7.000000 +0:? 8.000000 +0:? 9.000000 +0:? 10.000000 +0:? 11.000000 +0:? 12.000000 +0:? 13.000000 +0:? 14.000000 +0:? 15.000000 +0:35 Sequence +0:35 move second child to first child (temp 3X2 matrix of float) +0:35 'r61' (temp 3X2 matrix of float) +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:? 5.000000 +0:? 6.000000 +0:36 Sequence +0:36 move second child to first child (temp 2X3 matrix of float) +0:36 'r62' (temp 2X3 matrix of float) +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:? 5.000000 +0:? 6.000000 +0:39 Sequence +0:39 move second child to first child (temp 2X4 matrix of float) +0:39 'r65' (temp 2X4 matrix of float) +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:? 5.000000 +0:? 6.000000 +0:? 7.000000 +0:? 8.000000 +0:40 Sequence +0:40 move second child to first child (temp 3X4 matrix of float) +0:40 'r66' (temp 3X4 matrix of float) +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:? 5.000000 +0:? 6.000000 +0:? 7.000000 +0:? 8.000000 +0:? 9.000000 +0:? 10.000000 +0:? 11.000000 +0:? 12.000000 +0:45 Branch: Return with expression +0:45 Constant: +0:45 0.000000 +0:? Linker Objects + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:48 Function Definition: PixelShaderFunction( (global float) +0:3 Function Parameters: +0:? Sequence +0:4 Sequence +0:4 move second child to first child (temp 4-component vector of float) +0:4 'r00' (temp 4-component vector of float) +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:5 Sequence +0:5 move second child to first child (temp 4-component vector of float) +0:5 'r01' (temp 4-component vector of float) +0:? Constant: +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:? 5.000000 +0:7 Sequence +0:7 move second child to first child (temp 1-component vector of bool) +0:7 'r12' (temp 1-component vector of bool) +0:7 Constant: +0:7 false (const bool) +0:8 Sequence +0:8 move second child to first child (temp 1-component vector of int) +0:8 'r13' (temp 1-component vector of int) +0:8 Constant: +0:8 1 (const int) +0:9 Sequence +0:9 move second child to first child (temp 1-component vector of float) +0:9 'r14' (temp 1-component vector of float) +0:9 Constant: +0:9 1.000000 +0:10 Sequence +0:10 move second child to first child (temp 1-component vector of double) +0:10 'r15' (temp 1-component vector of double) +0:10 Constant: +0:10 1.000000 +0:11 Sequence +0:11 move second child to first child (temp 1-component vector of uint) +0:11 'r16' (temp 1-component vector of uint) +0:11 Constant: +0:11 1 (const uint) +0:13 Sequence +0:13 move second child to first child (temp 2-component vector of bool) +0:13 'r20' (temp 2-component vector of bool) +0:? Constant: +0:? false (const bool) +0:? true (const bool) +0:14 Sequence +0:14 move second child to first child (temp 2-component vector of int) +0:14 'r21' (temp 2-component vector of int) +0:? Constant: +0:? 1 (const int) +0:? 2 (const int) +0:15 Sequence +0:15 move second child to first child (temp 2-component vector of float) +0:15 'r22' (temp 2-component vector of float) +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:16 Sequence +0:16 move second child to first child (temp 2-component vector of double) +0:16 'r23' (temp 2-component vector of double) +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:17 Sequence +0:17 move second child to first child (temp 2-component vector of uint) +0:17 'r24' (temp 2-component vector of uint) +0:? Constant: +0:? 1 (const uint) +0:? 2 (const uint) +0:19 Sequence +0:19 move second child to first child (temp 3-component vector of bool) +0:19 'r30' (temp 3-component vector of bool) +0:? Constant: +0:? false (const bool) +0:? true (const bool) +0:? true (const bool) +0:20 Sequence +0:20 move second child to first child (temp 3-component vector of int) +0:20 'r31' (temp 3-component vector of int) +0:? Constant: +0:? 1 (const int) +0:? 2 (const int) +0:? 3 (const int) +0:21 Sequence +0:21 move second child to first child (temp 3-component vector of float) +0:21 'r32' (temp 3-component vector of float) +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:22 Sequence +0:22 move second child to first child (temp 3-component vector of double) +0:22 'r33' (temp 3-component vector of double) +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:23 Sequence +0:23 move second child to first child (temp 3-component vector of uint) +0:23 'r34' (temp 3-component vector of uint) +0:? Constant: +0:? 1 (const uint) +0:? 2 (const uint) +0:? 3 (const uint) +0:25 Sequence +0:25 move second child to first child (temp 4-component vector of bool) +0:25 'r40' (temp 4-component vector of bool) +0:? Constant: +0:? false (const bool) +0:? true (const bool) +0:? true (const bool) +0:? false (const bool) +0:26 Sequence +0:26 move second child to first child (temp 4-component vector of int) +0:26 'r41' (temp 4-component vector of int) +0:? Constant: +0:? 1 (const int) +0:? 2 (const int) +0:? 3 (const int) +0:? 4 (const int) +0:27 Sequence +0:27 move second child to first child (temp 4-component vector of float) +0:27 'r42' (temp 4-component vector of float) +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:28 Sequence +0:28 move second child to first child (temp 4-component vector of double) +0:28 'r43' (temp 4-component vector of double) +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:29 Sequence +0:29 move second child to first child (temp 4-component vector of uint) +0:29 'r44' (temp 4-component vector of uint) +0:? Constant: +0:? 1 (const uint) +0:? 2 (const uint) +0:? 3 (const uint) +0:? 4 (const uint) +0:31 Sequence +0:31 move second child to first child (temp 4X4 matrix of float) +0:31 'r50' (temp 4X4 matrix of float) +0:? Constant: +0:? 0.000000 +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:? 5.000000 +0:? 6.000000 +0:? 7.000000 +0:? 8.000000 +0:? 9.000000 +0:? 10.000000 +0:? 11.000000 +0:? 12.000000 +0:? 13.000000 +0:? 14.000000 +0:? 15.000000 +0:32 Sequence +0:32 move second child to first child (temp 4X4 matrix of float) +0:32 'r51' (temp 4X4 matrix of float) +0:? Constant: +0:? 0.000000 +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:? 5.000000 +0:? 6.000000 +0:? 7.000000 +0:? 8.000000 +0:? 9.000000 +0:? 10.000000 +0:? 11.000000 +0:? 12.000000 +0:? 13.000000 +0:? 14.000000 +0:? 15.000000 +0:35 Sequence +0:35 move second child to first child (temp 3X2 matrix of float) +0:35 'r61' (temp 3X2 matrix of float) +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:? 5.000000 +0:? 6.000000 +0:36 Sequence +0:36 move second child to first child (temp 2X3 matrix of float) +0:36 'r62' (temp 2X3 matrix of float) +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:? 5.000000 +0:? 6.000000 +0:39 Sequence +0:39 move second child to first child (temp 2X4 matrix of float) +0:39 'r65' (temp 2X4 matrix of float) +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:? 5.000000 +0:? 6.000000 +0:? 7.000000 +0:? 8.000000 +0:40 Sequence +0:40 move second child to first child (temp 3X4 matrix of float) +0:40 'r66' (temp 3X4 matrix of float) +0:? Constant: +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:? 5.000000 +0:? 6.000000 +0:? 7.000000 +0:? 8.000000 +0:? 9.000000 +0:? 10.000000 +0:? 11.000000 +0:? 12.000000 +0:45 Branch: Return with expression +0:45 Constant: +0:45 0.000000 +0:? Linker Objects + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 145 + + Capability Shader + Capability Float64 + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "PixelShaderFunction" + ExecutionMode 4 OriginUpperLeft + Source HLSL 450 + Name 4 "PixelShaderFunction" + Name 9 "r00" + Name 15 "r01" + Name 20 "r12" + Name 24 "r13" + Name 27 "r14" + Name 30 "r15" + Name 34 "r16" + Name 38 "r20" + Name 43 "r21" + Name 48 "r22" + Name 52 "r23" + Name 57 "r24" + Name 62 "r30" + Name 66 "r31" + Name 71 "r32" + Name 75 "r33" + Name 80 "r34" + Name 85 "r40" + Name 89 "r41" + Name 92 "r42" + Name 95 "r43" + Name 100 "r44" + Name 105 "r50" + Name 122 "r51" + Name 125 "r61" + Name 131 "r62" + Name 136 "r65" + Name 141 "r66" + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: 6(float) Constant 1065353216 + 11: 6(float) Constant 1073741824 + 12: 6(float) Constant 1077936128 + 13: 6(float) Constant 1082130432 + 14: 7(fvec4) ConstantComposite 10 11 12 13 + 16: 6(float) Constant 1084227584 + 17: 7(fvec4) ConstantComposite 11 12 13 16 + 18: TypeBool + 19: TypePointer Function 18(bool) + 21: 18(bool) ConstantFalse + 22: TypeInt 32 1 + 23: TypePointer Function 22(int) + 25: 22(int) Constant 1 + 26: TypePointer Function 6(float) + 28: TypeFloat 64 + 29: TypePointer Function 28(float) + 31: 28(float) Constant 0 1072693248 + 32: TypeInt 32 0 + 33: TypePointer Function 32(int) + 35: 32(int) Constant 1 + 36: TypeVector 18(bool) 2 + 37: TypePointer Function 36(bvec2) + 39: 18(bool) ConstantTrue + 40: 36(bvec2) ConstantComposite 21 39 + 41: TypeVector 22(int) 2 + 42: TypePointer Function 41(ivec2) + 44: 22(int) Constant 2 + 45: 41(ivec2) ConstantComposite 25 44 + 46: TypeVector 6(float) 2 + 47: TypePointer Function 46(fvec2) + 49: 46(fvec2) ConstantComposite 10 11 + 50: TypeVector 28(float) 2 + 51: TypePointer Function 50(fvec2) + 53: 28(float) Constant 0 1073741824 + 54: 50(fvec2) ConstantComposite 31 53 + 55: TypeVector 32(int) 2 + 56: TypePointer Function 55(ivec2) + 58: 32(int) Constant 2 + 59: 55(ivec2) ConstantComposite 35 58 + 60: TypeVector 18(bool) 3 + 61: TypePointer Function 60(bvec3) + 63: 60(bvec3) ConstantComposite 21 39 39 + 64: TypeVector 22(int) 3 + 65: TypePointer Function 64(ivec3) + 67: 22(int) Constant 3 + 68: 64(ivec3) ConstantComposite 25 44 67 + 69: TypeVector 6(float) 3 + 70: TypePointer Function 69(fvec3) + 72: 69(fvec3) ConstantComposite 10 11 12 + 73: TypeVector 28(float) 3 + 74: TypePointer Function 73(fvec3) + 76: 28(float) Constant 0 1074266112 + 77: 73(fvec3) ConstantComposite 31 53 76 + 78: TypeVector 32(int) 3 + 79: TypePointer Function 78(ivec3) + 81: 32(int) Constant 3 + 82: 78(ivec3) ConstantComposite 35 58 81 + 83: TypeVector 18(bool) 4 + 84: TypePointer Function 83(bvec4) + 86: 83(bvec4) ConstantComposite 21 39 39 21 + 87: TypeVector 22(int) 4 + 88: TypePointer Function 87(ivec4) + 90: 22(int) Constant 4 + 91: 87(ivec4) ConstantComposite 25 44 67 90 + 93: TypeVector 28(float) 4 + 94: TypePointer Function 93(fvec4) + 96: 28(float) Constant 0 1074790400 + 97: 93(fvec4) ConstantComposite 31 53 76 96 + 98: TypeVector 32(int) 4 + 99: TypePointer Function 98(ivec4) + 101: 32(int) Constant 4 + 102: 98(ivec4) ConstantComposite 35 58 81 101 + 103: TypeMatrix 7(fvec4) 4 + 104: TypePointer Function 103 + 106: 6(float) Constant 0 + 107: 7(fvec4) ConstantComposite 106 10 11 12 + 108: 6(float) Constant 1086324736 + 109: 6(float) Constant 1088421888 + 110: 7(fvec4) ConstantComposite 13 16 108 109 + 111: 6(float) Constant 1090519040 + 112: 6(float) Constant 1091567616 + 113: 6(float) Constant 1092616192 + 114: 6(float) Constant 1093664768 + 115: 7(fvec4) ConstantComposite 111 112 113 114 + 116: 6(float) Constant 1094713344 + 117: 6(float) Constant 1095761920 + 118: 6(float) Constant 1096810496 + 119: 6(float) Constant 1097859072 + 120: 7(fvec4) ConstantComposite 116 117 118 119 + 121: 103 ConstantComposite 107 110 115 120 + 123: TypeMatrix 46(fvec2) 3 + 124: TypePointer Function 123 + 126: 46(fvec2) ConstantComposite 12 13 + 127: 46(fvec2) ConstantComposite 16 108 + 128: 123 ConstantComposite 49 126 127 + 129: TypeMatrix 69(fvec3) 2 + 130: TypePointer Function 129 + 132: 69(fvec3) ConstantComposite 13 16 108 + 133: 129 ConstantComposite 72 132 + 134: TypeMatrix 7(fvec4) 2 + 135: TypePointer Function 134 + 137: 7(fvec4) ConstantComposite 16 108 109 111 + 138: 134 ConstantComposite 14 137 + 139: TypeMatrix 7(fvec4) 3 + 140: TypePointer Function 139 + 142: 7(fvec4) ConstantComposite 112 113 114 116 + 143: 139 ConstantComposite 14 137 142 +4(PixelShaderFunction): 2 Function None 3 + 5: Label + 9(r00): 8(ptr) Variable Function + 15(r01): 8(ptr) Variable Function + 20(r12): 19(ptr) Variable Function + 24(r13): 23(ptr) Variable Function + 27(r14): 26(ptr) Variable Function + 30(r15): 29(ptr) Variable Function + 34(r16): 33(ptr) Variable Function + 38(r20): 37(ptr) Variable Function + 43(r21): 42(ptr) Variable Function + 48(r22): 47(ptr) Variable Function + 52(r23): 51(ptr) Variable Function + 57(r24): 56(ptr) Variable Function + 62(r30): 61(ptr) Variable Function + 66(r31): 65(ptr) Variable Function + 71(r32): 70(ptr) Variable Function + 75(r33): 74(ptr) Variable Function + 80(r34): 79(ptr) Variable Function + 85(r40): 84(ptr) Variable Function + 89(r41): 88(ptr) Variable Function + 92(r42): 8(ptr) Variable Function + 95(r43): 94(ptr) Variable Function + 100(r44): 99(ptr) Variable Function + 105(r50): 104(ptr) Variable Function + 122(r51): 104(ptr) Variable Function + 125(r61): 124(ptr) Variable Function + 131(r62): 130(ptr) Variable Function + 136(r65): 135(ptr) Variable Function + 141(r66): 140(ptr) Variable Function + Store 9(r00) 14 + Store 15(r01) 17 + Store 20(r12) 21 + Store 24(r13) 25 + Store 27(r14) 10 + Store 30(r15) 31 + Store 34(r16) 35 + Store 38(r20) 40 + Store 43(r21) 45 + Store 48(r22) 49 + Store 52(r23) 54 + Store 57(r24) 59 + Store 62(r30) 63 + Store 66(r31) 68 + Store 71(r32) 72 + Store 75(r33) 77 + Store 80(r34) 82 + Store 85(r40) 86 + Store 89(r41) 91 + Store 92(r42) 14 + Store 95(r43) 97 + Store 100(r44) 102 + Store 105(r50) 121 + Store 122(r51) 121 + Store 125(r61) 128 + Store 131(r62) 133 + Store 136(r65) 138 + Store 141(r66) 143 + ReturnValue 106 + FunctionEnd diff --git a/Test/baseResults/hlsl.typedef.frag.out b/Test/baseResults/hlsl.typedef.frag.out new file mode 100755 index 00000000..ca0235ae --- /dev/null +++ b/Test/baseResults/hlsl.typedef.frag.out @@ -0,0 +1,132 @@ +hlsl.typedef.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:12 Function Definition: ShaderFunction(vf4;i1; (global 4-component vector of float) +0:4 Function Parameters: +0:4 'input' (in 4-component vector of float) +0:4 'ii' (in int) +0:? Sequence +0:6 Sequence +0:6 move second child to first child (temp 4-component vector of float) +0:6 'a1' (temp 4-component vector of float) +0:6 Constant: +0:6 1.000000 +0:6 1.000000 +0:6 1.000000 +0:6 1.000000 +0:7 Sequence +0:7 move second child to first child (temp int) +0:7 'i' (temp int) +0:7 Constant: +0:7 2 (const int) +0:9 Sequence +0:9 move second child to first child (temp int) +0:9 'j' (temp int) +0:9 'ii' (in int) +0:10 Branch: Return with expression +0:10 add (temp 4-component vector of float) +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 Convert int to float (temp float) +0:10 add (temp int) +0:10 'i' (temp int) +0:10 'j' (temp int) +0:? Linker Objects + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:12 Function Definition: ShaderFunction(vf4;i1; (global 4-component vector of float) +0:4 Function Parameters: +0:4 'input' (in 4-component vector of float) +0:4 'ii' (in int) +0:? Sequence +0:6 Sequence +0:6 move second child to first child (temp 4-component vector of float) +0:6 'a1' (temp 4-component vector of float) +0:6 Constant: +0:6 1.000000 +0:6 1.000000 +0:6 1.000000 +0:6 1.000000 +0:7 Sequence +0:7 move second child to first child (temp int) +0:7 'i' (temp int) +0:7 Constant: +0:7 2 (const int) +0:9 Sequence +0:9 move second child to first child (temp int) +0:9 'j' (temp int) +0:9 'ii' (in int) +0:10 Branch: Return with expression +0:10 add (temp 4-component vector of float) +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 Convert int to float (temp float) +0:10 add (temp int) +0:10 'i' (temp int) +0:10 'j' (temp int) +0:? Linker Objects + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 34 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "PixelShaderFunction" + ExecutionMode 4 OriginUpperLeft + Source HLSL 450 + Name 4 "PixelShaderFunction" + Name 14 "ShaderFunction(vf4;i1;" + Name 12 "input" + Name 13 "ii" + Name 16 "a1" + Name 19 "i" + Name 21 "j" + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 9: TypeInt 32 1 + 10: TypePointer Function 9(int) + 11: TypeFunction 7(fvec4) 8(ptr) 10(ptr) + 17: 6(float) Constant 1065353216 + 18: 7(fvec4) ConstantComposite 17 17 17 17 + 20: 9(int) Constant 2 +4(PixelShaderFunction): 2 Function None 3 + 5: Label + FunctionEnd +14(ShaderFunction(vf4;i1;): 7(fvec4) Function None 11 + 12(input): 8(ptr) FunctionParameter + 13(ii): 10(ptr) FunctionParameter + 15: Label + 16(a1): 8(ptr) Variable Function + 19(i): 10(ptr) Variable Function + 21(j): 10(ptr) Variable Function + Store 16(a1) 18 + Store 19(i) 20 + 22: 9(int) Load 13(ii) + Store 21(j) 22 + 23: 7(fvec4) Load 12(input) + 24: 7(fvec4) Load 16(a1) + 25: 7(fvec4) FMul 23 24 + 26: 9(int) Load 19(i) + 27: 9(int) Load 21(j) + 28: 9(int) IAdd 26 27 + 29: 6(float) ConvertSToF 28 + 30: 7(fvec4) CompositeConstruct 29 29 29 29 + 31: 7(fvec4) FAdd 25 30 + ReturnValue 31 + FunctionEnd diff --git a/Test/baseResults/hlsl.void.frag.out b/Test/baseResults/hlsl.void.frag.out index 0ddc3310..c3fc10c6 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:2 Function Definition: foo1( (temp void) +0:2 Function Definition: foo1( (global void) 0:1 Function Parameters: -0:4 Function Definition: foo2( (temp void) +0:4 Function Definition: foo2( (global void) 0:2 Function Parameters: -0:8 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) +0:8 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) 0:5 Function Parameters: 0:5 'input' (in 4-component vector of float) 0:? Sequence -0:6 Function Call: foo1( (temp void) -0:7 Function Call: foo2( (temp void) +0:6 Function Call: foo1( (global void) +0:7 Function Call: foo2( (global void) 0:? Linker Objects @@ -21,16 +21,16 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:2 Function Definition: foo1( (temp void) +0:2 Function Definition: foo1( (global void) 0:1 Function Parameters: -0:4 Function Definition: foo2( (temp void) +0:4 Function Definition: foo2( (global void) 0:2 Function Parameters: -0:8 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) +0:8 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) 0:5 Function Parameters: 0:5 'input' (in 4-component vector of float) 0:? Sequence -0:6 Function Call: foo1( (temp void) -0:7 Function Call: foo2( (temp void) +0:6 Function Call: foo1( (global void) +0:7 Function Call: foo2( (global void) 0:? Linker Objects // Module Version 10000 diff --git a/Test/baseResults/hlsl.whileLoop.frag.out b/Test/baseResults/hlsl.whileLoop.frag.out index f4be34af..aece52a4 100755 --- a/Test/baseResults/hlsl.whileLoop.frag.out +++ b/Test/baseResults/hlsl.whileLoop.frag.out @@ -2,7 +2,7 @@ hlsl.whileLoop.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:8 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) +0:8 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) 0:2 Function Parameters: 0:2 'input' (in 4-component vector of float) 0:? Sequence @@ -39,7 +39,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:8 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) +0:8 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) 0:2 Function Parameters: 0:2 'input' (in 4-component vector of float) 0:? Sequence diff --git a/Test/baseResults/maxClipDistances.vert.out b/Test/baseResults/maxClipDistances.vert.out new file mode 100644 index 00000000..5d44a663 --- /dev/null +++ b/Test/baseResults/maxClipDistances.vert.out @@ -0,0 +1,23 @@ +maxClipDistances.vert +Shader version: 130 +0:? Sequence +0:5 Function Definition: main( (global void) +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) + + +Linked vertex stage: + + +Shader version: 130 +0:? Sequence +0:5 Function Definition: main( (global void) +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/specExamples.vert.out b/Test/baseResults/specExamples.vert.out index 7a880331..ef9a1225 100644 --- a/Test/baseResults/specExamples.vert.out +++ b/Test/baseResults/specExamples.vert.out @@ -297,8 +297,8 @@ ERROR: node is still EOpNull! 0:? 'b2' (layout(binding=2 ) uniform atomic_uint) 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, 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 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, 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 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) diff --git a/Test/baseResults/spv.430.frag.out b/Test/baseResults/spv.430.frag.out new file mode 100755 index 00000000..0058e9c8 --- /dev/null +++ b/Test/baseResults/spv.430.frag.out @@ -0,0 +1,54 @@ +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 + + Capability Shader + Capability Geometry + Capability MultiViewport + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 9 14 19 + ExecutionMode 4 OriginUpperLeft + Source GLSL 430 + Name 4 "main" + Name 9 "color" + Name 14 "gl_Layer" + Name 19 "gl_ViewportIndex" + Decorate 14(gl_Layer) Flat + Decorate 14(gl_Layer) BuiltIn Layer + Decorate 19(gl_ViewportIndex) Flat + Decorate 19(gl_ViewportIndex) BuiltIn ViewportIndex + 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: 6(float) Constant 1065353216 + 11: 7(fvec4) ConstantComposite 10 10 10 10 + 12: TypeInt 32 1 + 13: TypePointer Input 12(int) + 14(gl_Layer): 13(ptr) Variable Input +19(gl_ViewportIndex): 13(ptr) Variable Input + 4(main): 2 Function None 3 + 5: Label + Store 9(color) 11 + 15: 12(int) Load 14(gl_Layer) + 16: 6(float) ConvertSToF 15 + 17: 7(fvec4) Load 9(color) + 18: 7(fvec4) VectorTimesScalar 17 16 + Store 9(color) 18 + 20: 12(int) Load 19(gl_ViewportIndex) + 21: 6(float) ConvertSToF 20 + 22: 7(fvec4) Load 9(color) + 23: 7(fvec4) VectorTimesScalar 22 21 + Store 9(color) 23 + Return + FunctionEnd diff --git a/Test/baseResults/spv.430.vert.out b/Test/baseResults/spv.430.vert.out index 07dc1a79..52749134 100755 --- a/Test/baseResults/spv.430.vert.out +++ b/Test/baseResults/spv.430.vert.out @@ -63,6 +63,7 @@ Linked vertex stage: Decorate 55(sampb2) Binding 5 Decorate 56(sampb4) DescriptorSet 0 Decorate 56(sampb4) Binding 31 + Decorate 62(var) Flat Decorate 62(var) Location 0 MemberDecorate 63(MS) 0 Location 17 Decorate 63(MS) Block diff --git a/Test/baseResults/spv.450.tesc.out b/Test/baseResults/spv.450.tesc.out new file mode 100755 index 00000000..c6c08b26 --- /dev/null +++ b/Test/baseResults/spv.450.tesc.out @@ -0,0 +1,50 @@ +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 17 + + Capability Tessellation + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint TessellationControl 4 "main" 9 16 + ExecutionMode 4 OutputVertices 4 + Source GLSL 450 + Name 4 "main" + Name 9 "patchOut" + Name 10 "S" + MemberName 10(S) 0 "sMem1" + MemberName 10(S) 1 "sMem2" + Name 11 "TheBlock" + MemberName 11(TheBlock) 0 "bMem1" + MemberName 11(TheBlock) 1 "bMem2" + MemberName 11(TheBlock) 2 "s" + Name 16 "tcBlock" + Decorate 9(patchOut) Patch + MemberDecorate 11(TheBlock) 0 Patch + MemberDecorate 11(TheBlock) 1 Patch + MemberDecorate 11(TheBlock) 2 Patch + Decorate 11(TheBlock) Block + Decorate 16(tcBlock) Location 12 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Output 7(fvec4) + 9(patchOut): 8(ptr) Variable Output + 10(S): TypeStruct 6(float) 6(float) + 11(TheBlock): TypeStruct 6(float) 6(float) 10(S) + 12: TypeInt 32 0 + 13: 12(int) Constant 2 + 14: TypeArray 11(TheBlock) 13 + 15: TypePointer Output 14 + 16(tcBlock): 15(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + Return + FunctionEnd diff --git a/Test/baseResults/spv.atomic.comp.out b/Test/baseResults/spv.atomic.comp.out index 14a0fe31..01e09323 100755 --- a/Test/baseResults/spv.atomic.comp.out +++ b/Test/baseResults/spv.atomic.comp.out @@ -1,203 +1,133 @@ spv.atomic.comp -Warning, version 310 is not yet complete; most version-specific features are present, but some are missing. - -Shader version: 310 -local_size = (1, 1, 1) -0:? Sequence -0:14 Function Definition: func(au1; (global highp uint) -0:14 Function Parameters: -0:14 'c' (in highp atomic_uint) -0:16 Sequence -0:16 Branch: Return with expression -0:16 AtomicCounterIncrement (global highp uint) -0:16 'c' (in highp atomic_uint) -0:19 Function Definition: main( (global void) -0:19 Function Parameters: -0:21 Sequence -0:21 MemoryBarrierAtomicCounter (global void) -0:22 Function Call: func(au1; (global highp uint) -0:22 'counter' (layout(binding=0 offset=0 ) uniform highp atomic_uint) -0:23 Sequence -0:23 move second child to first child (temp highp uint) -0:23 'val' (temp highp uint) -0:23 AtomicCounter (global highp uint) -0:23 direct index (layout(binding=0 offset=4 ) temp highp atomic_uint) -0:23 'countArr' (layout(binding=0 offset=4 ) uniform 4-element array of highp atomic_uint) -0:23 Constant: -0:23 2 (const int) -0:24 AtomicCounterDecrement (global highp uint) -0:24 'counter' (layout(binding=0 offset=0 ) uniform highp atomic_uint) -0:36 Function Definition: atoms( (global void) -0:36 Function Parameters: -0:38 Sequence -0:38 Sequence -0:38 move second child to first child (temp highp int) -0:38 'origi' (temp highp int) -0:38 AtomicAdd (global highp int) -0:38 'atomi' (shared highp int) -0:38 Constant: -0:38 3 (const int) -0:39 Sequence -0:39 move second child to first child (temp highp uint) -0:39 'origu' (temp highp uint) -0:39 AtomicAnd (global highp uint) -0:39 'atomu' (shared highp uint) -0:39 'value' (shared highp uint) -0:40 move second child to first child (temp highp uint) -0:40 'origu' (temp highp uint) -0:40 AtomicOr (global highp uint) -0:40 'atomu' (shared highp uint) -0:40 Constant: -0:40 7 (const uint) -0:41 move second child to first child (temp highp uint) -0:41 'origu' (temp highp uint) -0:41 AtomicXor (global highp uint) -0:41 'atomu' (shared highp uint) -0:41 Constant: -0:41 7 (const uint) -0:42 move second child to first child (temp highp uint) -0:42 'origu' (temp highp uint) -0:42 AtomicMin (global highp uint) -0:42 'atomu' (shared highp uint) -0:42 'value' (shared highp uint) -0:43 move second child to first child (temp highp int) -0:43 'origi' (temp highp int) -0:43 AtomicMax (global highp int) -0:43 'atomi' (shared highp int) -0:43 Constant: -0:43 7 (const int) -0:44 move second child to first child (temp highp int) -0:44 'origi' (temp highp int) -0:44 AtomicExchange (global highp int) -0:44 'atomi' (shared highp int) -0:44 'origi' (temp highp int) -0:45 move second child to first child (temp highp uint) -0:45 'origu' (temp highp uint) -0:45 AtomicCompSwap (global highp uint) -0:45 'atomu' (shared highp uint) -0:45 Constant: -0:45 10 (const uint) -0:45 'value' (shared highp uint) -0:46 AtomicAdd (global highp int) -0:46 direct index (temp highp int) -0:46 n_frames_rendered: direct index for structure (layout(column_major std140 offset=16 ) buffer highp 4-component vector of int) -0:46 'result' (layout(binding=0 column_major std140 ) restrict buffer block{layout(column_major std140 offset=0 ) buffer highp float f, layout(column_major std140 offset=16 ) buffer highp 4-component vector of int n_frames_rendered}) -0:46 Constant: -0:46 1 (const int) -0:46 Constant: -0:46 2 (const int) -0:46 Constant: -0:46 1 (const int) -0:? Linker Objects -0:? 'counter' (layout(binding=0 offset=0 ) uniform highp atomic_uint) -0:? 'countArr' (layout(binding=0 offset=4 ) uniform 4-element array of highp atomic_uint) -0:? 'value' (shared highp uint) -0:? 'arrX' (global 1-element array of highp int) -0:? 'arrY' (global 1-element array of highp int) -0:? 'arrZ' (global 1-element array of highp int) -0:? 'atomi' (shared highp int) -0:? 'atomu' (shared highp uint) -0:? 'result' (layout(binding=0 column_major std140 ) restrict buffer block{layout(column_major std140 offset=0 ) buffer highp float f, layout(column_major std140 offset=16 ) buffer highp 4-component vector of int n_frames_rendered}) +Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. Linked compute stage: -Shader version: 310 -local_size = (1, 1, 1) -0:? Sequence -0:14 Function Definition: func(au1; (global highp uint) -0:14 Function Parameters: -0:14 'c' (in highp atomic_uint) -0:16 Sequence -0:16 Branch: Return with expression -0:16 AtomicCounterIncrement (global highp uint) -0:16 'c' (in highp atomic_uint) -0:19 Function Definition: main( (global void) -0:19 Function Parameters: -0:21 Sequence -0:21 MemoryBarrierAtomicCounter (global void) -0:22 Function Call: func(au1; (global highp uint) -0:22 'counter' (layout(binding=0 offset=0 ) uniform highp atomic_uint) -0:23 Sequence -0:23 move second child to first child (temp highp uint) -0:23 'val' (temp highp uint) -0:23 AtomicCounter (global highp uint) -0:23 direct index (layout(binding=0 offset=4 ) temp highp atomic_uint) -0:23 'countArr' (layout(binding=0 offset=4 ) uniform 4-element array of highp atomic_uint) -0:23 Constant: -0:23 2 (const int) -0:24 AtomicCounterDecrement (global highp uint) -0:24 'counter' (layout(binding=0 offset=0 ) uniform highp atomic_uint) -0:36 Function Definition: atoms( (global void) -0:36 Function Parameters: -0:38 Sequence -0:38 Sequence -0:38 move second child to first child (temp highp int) -0:38 'origi' (temp highp int) -0:38 AtomicAdd (global highp int) -0:38 'atomi' (shared highp int) -0:38 Constant: -0:38 3 (const int) -0:39 Sequence -0:39 move second child to first child (temp highp uint) -0:39 'origu' (temp highp uint) -0:39 AtomicAnd (global highp uint) -0:39 'atomu' (shared highp uint) -0:39 'value' (shared highp uint) -0:40 move second child to first child (temp highp uint) -0:40 'origu' (temp highp uint) -0:40 AtomicOr (global highp uint) -0:40 'atomu' (shared highp uint) -0:40 Constant: -0:40 7 (const uint) -0:41 move second child to first child (temp highp uint) -0:41 'origu' (temp highp uint) -0:41 AtomicXor (global highp uint) -0:41 'atomu' (shared highp uint) -0:41 Constant: -0:41 7 (const uint) -0:42 move second child to first child (temp highp uint) -0:42 'origu' (temp highp uint) -0:42 AtomicMin (global highp uint) -0:42 'atomu' (shared highp uint) -0:42 'value' (shared highp uint) -0:43 move second child to first child (temp highp int) -0:43 'origi' (temp highp int) -0:43 AtomicMax (global highp int) -0:43 'atomi' (shared highp int) -0:43 Constant: -0:43 7 (const int) -0:44 move second child to first child (temp highp int) -0:44 'origi' (temp highp int) -0:44 AtomicExchange (global highp int) -0:44 'atomi' (shared highp int) -0:44 'origi' (temp highp int) -0:45 move second child to first child (temp highp uint) -0:45 'origu' (temp highp uint) -0:45 AtomicCompSwap (global highp uint) -0:45 'atomu' (shared highp uint) -0:45 Constant: -0:45 10 (const uint) -0:45 'value' (shared highp uint) -0:46 AtomicAdd (global highp int) -0:46 direct index (temp highp int) -0:46 n_frames_rendered: direct index for structure (layout(column_major std140 offset=16 ) buffer highp 4-component vector of int) -0:46 'result' (layout(binding=0 column_major std140 ) restrict buffer block{layout(column_major std140 offset=0 ) buffer highp float f, layout(column_major std140 offset=16 ) buffer highp 4-component vector of int n_frames_rendered}) -0:46 Constant: -0:46 1 (const int) -0:46 Constant: -0:46 2 (const int) -0:46 Constant: -0:46 1 (const int) -0:? Linker Objects -0:? 'counter' (layout(binding=0 offset=0 ) uniform highp atomic_uint) -0:? 'countArr' (layout(binding=0 offset=4 ) uniform 4-element array of highp atomic_uint) -0:? 'value' (shared highp uint) -0:? 'arrX' (global 1-element array of highp int) -0:? 'arrY' (global 1-element array of highp int) -0:? 'arrZ' (global 1-element array of highp int) -0:? 'atomi' (shared highp int) -0:? 'atomu' (shared highp uint) -0:? 'result' (layout(binding=0 column_major std140 ) restrict buffer block{layout(column_major std140 offset=0 ) buffer highp float f, layout(column_major std140 offset=16 ) buffer highp 4-component vector of int n_frames_rendered}) +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 73 + Capability Shader + Capability AtomicStorage + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint GLCompute 4 "main" + ExecutionMode 4 LocalSize 1 1 1 + Source GLSL 450 + Name 4 "main" + Name 10 "func(au1;" + Name 9 "c" + Name 12 "atoms(" + Name 20 "counter" + Name 23 "val" + Name 27 "countArr" + Name 35 "origi" + Name 37 "atomi" + Name 40 "origu" + Name 42 "atomu" + Name 43 "value" + Name 60 "dataSSB" + MemberName 60(dataSSB) 0 "f" + MemberName 60(dataSSB) 1 "n_frames_rendered" + Name 62 "result" + Name 70 "arrX" + Name 71 "arrY" + Name 72 "arrZ" + Decorate 20(counter) Offset 0 + Decorate 20(counter) Binding 0 + Decorate 27(countArr) Offset 4 + Decorate 27(countArr) Binding 0 + MemberDecorate 60(dataSSB) 0 Restrict + MemberDecorate 60(dataSSB) 0 Offset 0 + MemberDecorate 60(dataSSB) 1 Restrict + MemberDecorate 60(dataSSB) 1 Offset 16 + Decorate 60(dataSSB) BufferBlock + Decorate 62(result) DescriptorSet 0 + Decorate 62(result) Binding 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 0 + 7: TypePointer AtomicCounter 6(int) + 8: TypeFunction 6(int) 7(ptr) + 14: 6(int) Constant 1 + 15: 6(int) Constant 0 + 19: 6(int) Constant 1024 + 20(counter): 7(ptr) Variable AtomicCounter + 22: TypePointer Function 6(int) + 24: 6(int) Constant 4 + 25: TypeArray 6(int) 24 + 26: TypePointer AtomicCounter 25 + 27(countArr): 26(ptr) Variable AtomicCounter + 28: TypeInt 32 1 + 29: 28(int) Constant 2 + 34: TypePointer Function 28(int) + 36: TypePointer Workgroup 28(int) + 37(atomi): 36(ptr) Variable Workgroup + 38: 28(int) Constant 3 + 41: TypePointer Workgroup 6(int) + 42(atomu): 41(ptr) Variable Workgroup + 43(value): 41(ptr) Variable Workgroup + 46: 6(int) Constant 7 + 51: 28(int) Constant 7 + 55: 6(int) Constant 10 + 58: TypeFloat 32 + 59: TypeVector 28(int) 4 + 60(dataSSB): TypeStruct 58(float) 59(ivec4) + 61: TypePointer Uniform 60(dataSSB) + 62(result): 61(ptr) Variable Uniform + 63: 28(int) Constant 1 + 64: 6(int) Constant 2 + 65: TypePointer Uniform 28(int) + 68: TypeArray 28(int) 14 + 69: TypePointer Private 68 + 70(arrX): 69(ptr) Variable Private + 71(arrY): 69(ptr) Variable Private + 72(arrZ): 69(ptr) Variable Private + 4(main): 2 Function None 3 + 5: Label + 23(val): 22(ptr) Variable Function + MemoryBarrier 14 19 + 21: 6(int) FunctionCall 10(func(au1;) 20(counter) + 30: 7(ptr) AccessChain 27(countArr) 29 + 31: 6(int) AtomicLoad 30 14 15 + Store 23(val) 31 + 32: 6(int) AtomicIDecrement 20(counter) 14 15 + 33: 6(int) AtomicIIncrement 20(counter) 14 15 + Return + FunctionEnd + 10(func(au1;): 6(int) Function None 8 + 9(c): 7(ptr) FunctionParameter + 11: Label + 16: 6(int) AtomicIIncrement 9(c) 14 15 + ReturnValue 16 + FunctionEnd + 12(atoms(): 2 Function None 3 + 13: Label + 35(origi): 34(ptr) Variable Function + 40(origu): 22(ptr) Variable Function + 39: 28(int) AtomicIAdd 37(atomi) 14 15 38 + Store 35(origi) 39 + 44: 6(int) Load 43(value) + 45: 6(int) AtomicAnd 42(atomu) 14 15 44 + Store 40(origu) 45 + 47: 6(int) AtomicOr 42(atomu) 14 15 46 + Store 40(origu) 47 + 48: 6(int) AtomicXor 42(atomu) 14 15 46 + Store 40(origu) 48 + 49: 6(int) Load 43(value) + 50: 6(int) AtomicUMin 42(atomu) 14 15 49 + Store 40(origu) 50 + 52: 28(int) AtomicSMax 37(atomi) 14 15 51 + Store 35(origi) 52 + 53: 28(int) Load 35(origi) + 54: 28(int) AtomicExchange 37(atomi) 14 15 53 + Store 35(origi) 54 + 56: 6(int) Load 43(value) + 57: 6(int) AtomicCompareExchange 42(atomu) 14 15 15 56 55 + Store 40(origu) 57 + 66: 65(ptr) AccessChain 62(result) 63 64 + 67: 28(int) AtomicIAdd 66 14 15 63 + Return + FunctionEnd diff --git a/Test/baseResults/spv.glFragColor.frag.out b/Test/baseResults/spv.glFragColor.frag.out new file mode 100755 index 00000000..df825a09 --- /dev/null +++ b/Test/baseResults/spv.glFragColor.frag.out @@ -0,0 +1,30 @@ +spv.glFragColor.frag + +Linked fragment stage: + + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 12 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 9 + ExecutionMode 4 OriginLowerLeft + Source GLSL 330 + Name 4 "main" + Name 9 "gl_FragColor" + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Output 7(fvec4) + 9(gl_FragColor): 8(ptr) Variable Output + 10: 6(float) Constant 1065353216 + 11: 7(fvec4) ConstantComposite 10 10 10 10 + 4(main): 2 Function None 3 + 5: Label + Store 9(gl_FragColor) 11 + Return + FunctionEnd diff --git a/Test/baseResults/spv.intOps.vert.out b/Test/baseResults/spv.intOps.vert.out index 926ab7c6..22451b9f 100644 --- a/Test/baseResults/spv.intOps.vert.out +++ b/Test/baseResults/spv.intOps.vert.out @@ -44,14 +44,6 @@ Linked vertex stage: Name 173 "u3" Name 182 "i3" Name 247 "v4" - Decorate 210 RelaxedPrecision - Decorate 216 RelaxedPrecision - Decorate 223 RelaxedPrecision - Decorate 230 RelaxedPrecision - Decorate 234 RelaxedPrecision - Decorate 240 RelaxedPrecision - Decorate 261 RelaxedPrecision - Decorate 265 RelaxedPrecision 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 1 diff --git a/Test/baseResults/spv.layoutNested.vert.out b/Test/baseResults/spv.layoutNested.vert.out index 2d6f559c..d778fbb4 100644 --- a/Test/baseResults/spv.layoutNested.vert.out +++ b/Test/baseResults/spv.layoutNested.vert.out @@ -162,6 +162,7 @@ Linked vertex stage: Decorate 58(bBt3) BufferBlock Decorate 60(bBtn3) DescriptorSet 1 Decorate 60(bBtn3) Binding 0 + Decorate 62(sout) Flat MemberDecorate 63(S) 0 Invariant MemberDecorate 63(S) 1 Invariant MemberDecorate 63(S) 2 Invariant diff --git a/Test/baseResults/spv.localAggregates.frag.out b/Test/baseResults/spv.localAggregates.frag.out index 2d464de5..21c389a0 100755 --- a/Test/baseResults/spv.localAggregates.frag.out +++ b/Test/baseResults/spv.localAggregates.frag.out @@ -44,8 +44,11 @@ Linked fragment stage: Name 128 "samp2D" Name 134 "foo" Name 135 "foo2" + Decorate 15(foo3) Flat Decorate 90(condition) Flat Decorate 128(samp2D) DescriptorSet 0 + Decorate 134(foo) Flat + Decorate 135(foo2) Flat 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 1 diff --git a/Test/baseResults/spv.specConst.vert.out b/Test/baseResults/spv.specConst.vert.out new file mode 100755 index 00000000..db5a417c --- /dev/null +++ b/Test/baseResults/spv.specConst.vert.out @@ -0,0 +1,61 @@ +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 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 13 25 26 + Source GLSL 450 + Name 4 "main" + Name 11 "gl_PerVertex" + MemberName 11(gl_PerVertex) 0 "gl_Position" + MemberName 11(gl_PerVertex) 1 "gl_PointSize" + MemberName 11(gl_PerVertex) 2 "gl_ClipDistance" + MemberName 11(gl_PerVertex) 3 "gl_CullDistance" + Name 13 "" + Name 25 "gl_VertexID" + Name 26 "gl_InstanceID" + MemberDecorate 11(gl_PerVertex) 0 BuiltIn Position + MemberDecorate 11(gl_PerVertex) 1 BuiltIn PointSize + MemberDecorate 11(gl_PerVertex) 2 BuiltIn ClipDistance + MemberDecorate 11(gl_PerVertex) 3 BuiltIn CullDistance + Decorate 11(gl_PerVertex) Block + Decorate 18 SpecId 11 + Decorate 25(gl_VertexID) BuiltIn VertexId + Decorate 26(gl_InstanceID) BuiltIn InstanceId + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypeInt 32 0 + 9: 8(int) Constant 1 + 10: TypeArray 6(float) 9 +11(gl_PerVertex): TypeStruct 7(fvec4) 6(float) 10 10 + 12: TypePointer Output 11(gl_PerVertex) + 13: 12(ptr) Variable Output + 14: TypeInt 32 1 + 15: 14(int) Constant 0 + 16: 6(float) Constant 1065353216 + 17: 7(fvec4) ConstantComposite 16 16 16 16 + 18: 14(int) SpecConstant 8 + 22: TypePointer Output 7(fvec4) + 24: TypePointer Input 14(int) + 25(gl_VertexID): 24(ptr) Variable Input +26(gl_InstanceID): 24(ptr) Variable Input + 4(main): 2 Function None 3 + 5: Label + 19: 6(float) ConvertSToF 18 + 20: 7(fvec4) CompositeConstruct 19 19 19 19 + 21: 7(fvec4) FDiv 17 20 + 23: 22(ptr) AccessChain 13 15 + Store 23 21 + Return + FunctionEnd diff --git a/Test/baseResults/spv.variableArrayIndex.frag.out b/Test/baseResults/spv.variableArrayIndex.frag.out index b84b5bac..1f8ee96a 100755 --- a/Test/baseResults/spv.variableArrayIndex.frag.out +++ b/Test/baseResults/spv.variableArrayIndex.frag.out @@ -39,6 +39,9 @@ Linked fragment stage: Name 63 "coord" Name 69 "constructed" Decorate 10(Count) Flat + Decorate 20(foo3) Flat + Decorate 34(foo2) Flat + Decorate 36(foo) Flat Decorate 59(samp2D) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 diff --git a/Test/constFold.frag b/Test/constFold.frag index 97c3b2b6..73060788 100644 --- a/Test/constFold.frag +++ b/Test/constFold.frag @@ -138,4 +138,11 @@ const cag a0[3] = cag[3](cag(3, 2.0, true), cag(1, 5.0, true), cag(1, 9.0, false void foo4() { int a = int(a0[2].f); -} \ No newline at end of file +} + +const bool cval1 = all(bvec4(true, true, true, true)); +const bool cval2 = all(bvec4(false, false, false, false)); +const bool cval3 = all(bvec4(true, true, false, true)); +const bool cval4 = any(bvec4(true, true, true, true)); +const bool cval5 = any(bvec4(false, false, false, false)); +const bool cval6 = any(bvec4(false, true, false, false)); diff --git a/Test/functionSemantics.frag b/Test/functionSemantics.frag index 15ebc604..e5c3ed00 100644 --- a/Test/functionSemantics.frag +++ b/Test/functionSemantics.frag @@ -68,3 +68,8 @@ void aggCall() float F; m(ivec2(F)); // test input conversion of single argument that's an aggregate; other function tests in 120.vert } + +vec4 badConv() +{ + return u; // ERROR, can change scalar to vector +} \ No newline at end of file diff --git a/Test/glspv.esversion.vert b/Test/glspv.esversion.vert new file mode 100644 index 00000000..23501bf6 --- /dev/null +++ b/Test/glspv.esversion.vert @@ -0,0 +1,5 @@ +#version 310 es + +void main() +{ +} diff --git a/Test/glspv.frag b/Test/glspv.frag new file mode 100644 index 00000000..cea8e135 --- /dev/null +++ b/Test/glspv.frag @@ -0,0 +1,14 @@ +#version 330 + +#ifdef GL_SPIRV +#error GL_SPIRV is set ( correct, not an error ) +#if GL_SPIRV == 100 +#error GL_SPIR is 100 +#endif +#endif + +void main() +{ +} + +layout(input_attachment_index = 1) uniform subpassInput sub; // ERROR, no inputs diff --git a/Test/glspv.version.frag b/Test/glspv.version.frag new file mode 100644 index 00000000..c9c6779e --- /dev/null +++ b/Test/glspv.version.frag @@ -0,0 +1,5 @@ +#version 330 compatibility + +void main() +{ +} diff --git a/Test/glspv.version.vert b/Test/glspv.version.vert new file mode 100644 index 00000000..c8573b7b --- /dev/null +++ b/Test/glspv.version.vert @@ -0,0 +1,5 @@ +#version 150 + +void main() +{ +} diff --git a/Test/glspv.vert b/Test/glspv.vert new file mode 100644 index 00000000..d2724ca2 --- /dev/null +++ b/Test/glspv.vert @@ -0,0 +1,20 @@ +#version 450 + +layout(push_constant) uniform Material { int a; } mat; // ERROR, can't use push_constant + +layout(set = 0, binding = 0, std140) uniform Bt1 { int a; } bt1; +layout(set = 1, binding = 0, std140) uniform Bt2 { int a; } bt2; // ERROR, set has to be 0 + +layout(shared) uniform Bt3 { int a; } bt3; // ERROR, no shared +layout(packed) uniform Bt4 { int a; } bt4; // ERROR, no shared + +void main() +{ + gl_VertexIndex; // ERROR, not preset + gl_InstanceIndex; // ERROR, not present + gl_VertexID; + gl_InstanceID; + gl_DepthRangeParameters; // ERROR, not present +} + +uniform sampler s; // ERROR, no sampler diff --git a/Test/hlsl.discard.frag b/Test/hlsl.discard.frag new file mode 100644 index 00000000..e8b52679 --- /dev/null +++ b/Test/hlsl.discard.frag @@ -0,0 +1,14 @@ +void foo(float f) +{ + if (f < 1.0) + discard; +} + +float4 PixelShaderFunction(float4 input) : COLOR0 +{ + foo(input.z); + if (input.x) + discard; + float f = input.x; + discard; +} diff --git a/Test/hlsl.forLoop.frag b/Test/hlsl.forLoop.frag index 9109de79..2495e6e1 100644 --- a/Test/hlsl.forLoop.frag +++ b/Test/hlsl.forLoop.frag @@ -5,4 +5,9 @@ float4 PixelShaderFunction(float4 input) : COLOR0 [unroll] for (; input != input; ) {} for (; input != input; ) { return -input; } for (--input; input != input; input += 2) { return -input; } + for (;;) if (input.x > 2.0) break; + for (;;) if (input.x > 2.0) continue; + float ii; + for (int ii = -1; ii < 3; ++ii) if (ii == 2) continue; + --ii; } diff --git a/Test/hlsl.if.frag b/Test/hlsl.if.frag index 1f0dde71..1f6dc415 100644 --- a/Test/hlsl.if.frag +++ b/Test/hlsl.if.frag @@ -25,4 +25,9 @@ float4 PixelShaderFunction(float4 input) : COLOR0 } else { return -input; } + + int ii; + if (float ii = input.z) + ++ii; + ++ii; } diff --git a/Test/hlsl.init.frag b/Test/hlsl.init.frag new file mode 100644 index 00000000..5acf55df --- /dev/null +++ b/Test/hlsl.init.frag @@ -0,0 +1,24 @@ +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; + +float4 ShaderFunction(float4 input) : COLOR0 +{ + float4 a2 = float4(0.2, 0.3, 0.4, 0.5); + struct S1 { + float f; + int i; + }; + struct S2 { + int j; + float g; + S1 s1; + }; + S2 s2i = { 9, a5, { (a3,a4), 12} }, s2 = S2(9, a5, S1((a3,a4), 12)); + float a8 = (a2, b2), a9 = a5; + + return input * a1; +} diff --git a/Test/hlsl.intrinsics.comp b/Test/hlsl.intrinsics.comp index 79f3d7d1..642a0fc6 100644 --- a/Test/hlsl.intrinsics.comp +++ b/Test/hlsl.intrinsics.comp @@ -13,7 +13,7 @@ gs uint4 gs_ua4; gs uint4 gs_ub4; gs uint4 gs_uc4; -float ComputeShaderFunction(float inF0, float inF1, float inF2, uint inU0, uint inU1) +float ComputeShaderFunctionS(float inF0, float inF1, float inF2, uint inU0, uint inU1) { uint out_u1; @@ -41,13 +41,13 @@ float ComputeShaderFunction(float inF0, float inF1, float inF2, uint inU0, uint return 0.0; } -float1 ComputeShaderFunction(float1 inF0, float1 inF1, float1 inF2) +float1 ComputeShaderFunction1(float1 inF0, float1 inF1, float1 inF2) { // TODO: ... add when float1 prototypes are generated return 0.0; } -float2 ComputeShaderFunction(float2 inF0, float2 inF1, float2 inF2, uint2 inU0, uint2 inU1) +float2 ComputeShaderFunction2(float2 inF0, float2 inF1, float2 inF2, uint2 inU0, uint2 inU1) { uint2 out_u2; @@ -74,7 +74,7 @@ float2 ComputeShaderFunction(float2 inF0, float2 inF1, float2 inF2, uint2 inU0, return float2(1,2); } -float3 ComputeShaderFunction(float3 inF0, float3 inF1, float3 inF2, uint3 inU0, uint3 inU1) +float3 ComputeShaderFunction3(float3 inF0, float3 inF1, float3 inF2, uint3 inU0, uint3 inU1) { uint3 out_u3; diff --git a/Test/hlsl.intrinsics.double.frag b/Test/hlsl.intrinsics.double.frag new file mode 100644 index 00000000..013422a8 --- /dev/null +++ b/Test/hlsl.intrinsics.double.frag @@ -0,0 +1,11 @@ + +float PixelShaderFunction(double inDV1a, double inDV1b, double inDV1c, + double2 inDV2, double3 inDV3, double4 inDV4, + uint inU1a, uint inU1b) +{ + double r00 = fma(inDV1a, inDV1b, inDV1c); + double r01 = asdouble(inU1a, inU1b); + + return 0.0; +} + diff --git a/Test/hlsl.intrinsics.f1632.frag b/Test/hlsl.intrinsics.f1632.frag index 4a68a67d..91ff33eb 100644 --- a/Test/hlsl.intrinsics.f1632.frag +++ b/Test/hlsl.intrinsics.f1632.frag @@ -1,24 +1,24 @@ -float PixelShaderFunction(float inF0) +float PixelShaderFunctionS(float inF0) { f32tof16(inF0); return 0.0; } -float1 PixelShaderFunction(float1 inF0) +float1 PixelShaderFunction1(float1 inF0) { // TODO: ... add when float1 prototypes are generated return 0.0; } -float2 PixelShaderFunction(float2 inF0) +float2 PixelShaderFunction2(float2 inF0) { f32tof16(inF0); return float2(1,2); } -float3 PixelShaderFunction(float3 inF0) +float3 PixelShaderFunction3(float3 inF0) { f32tof16(inF0); diff --git a/Test/hlsl.intrinsics.frag b/Test/hlsl.intrinsics.frag index a0915c29..dd417a10 100644 --- a/Test/hlsl.intrinsics.frag +++ b/Test/hlsl.intrinsics.frag @@ -13,237 +13,243 @@ gs uint4 gs_ua4; gs uint4 gs_ub4; gs uint4 gs_uc4; -float PixelShaderFunction(float inF0, float inF1, float inF2, uint inU0, uint inU1) +float PixelShaderFunctionS(float inF0, float inF1, float inF2, uint inU0, uint inU1) { uint out_u1; - all(inF0); - abs(inF0); - acos(inF0); - any(inF0); - asin(inF0); - asint(inF0); - asuint(inF0); - asfloat(inU0); + bool r000 = all(inF0); + float r001 = abs(inF0); + float r002 = acos(inF0); + bool r003 = any(inF0); + float r004 = asin(inF0); + int r005 = asint(inF0); + uint r006 = asuint(inF0); + float r007 = asfloat(inU0); // asdouble(inU0, inU1); // TODO: enable when HLSL parser used for intrinsics - atan(inF0); - atan2(inF0, inF1); - ceil(inF0); - clamp(inF0, inF1, inF2); + float r009 = atan(inF0); + float r010 = atan2(inF0, inF1); + float r011 = ceil(inF0); + float r012 = clamp(inF0, inF1, inF2); clip(inF0); - cos(inF0); - cosh(inF0); - countbits(7); - ddx(inF0); - ddx_coarse(inF0); - ddx_fine(inF0); - ddy(inF0); - ddy_coarse(inF0); - ddy_fine(inF0); - degrees(inF0); + float r014 = cos(inF0); + float r015 = cosh(inF0); + uint r016 = countbits(7); + float r017 = ddx(inF0); + float r018 = ddx_coarse(inF0); + float r019 = ddx_fine(inF0); + float r020 = ddy(inF0); + float r021 = ddy_coarse(inF0); + float r022 = ddy_fine(inF0); + float r023 = degrees(inF0); // EvaluateAttributeAtCentroid(inF0); // EvaluateAttributeAtSample(inF0, 0); // TODO: EvaluateAttributeSnapped(inF0, int2(1,2)); - exp(inF0); - exp2(inF0); - firstbithigh(7); - firstbitlow(7); - floor(inF0); + float r027 = exp(inF0); + float r028 = exp2(inF0); + uint r029 = firstbithigh(7); + uint r030 = firstbitlow(7); + float r031 = floor(inF0); // TODO: fma(inD0, inD1, inD2); - fmod(inF0, inF1); - frac(inF0); - frexp(inF0, inF1); - fwidth(inF0); - isinf(inF0); - isnan(inF0); - ldexp(inF0, inF1); - log(inF0); - log10(inF0); - log2(inF0); - max(inF0, inF1); - min(inF0, inF1); - pow(inF0, inF1); - radians(inF0); - rcp(inF0); - reversebits(2); - round(inF0); - rsqrt(inF0); - saturate(inF0); - sign(inF0); - sin(inF0); + float r033 = fmod(inF0, inF1); + float r034 = frac(inF0); + float r035 = frexp(inF0, inF1); + float r036 = fwidth(inF0); + bool r037 = isinf(inF0); + bool r038 = isnan(inF0); + float r039 = ldexp(inF0, inF1); + float r039a = lerp(inF0, inF1, inF2); + float r040 = log(inF0); + float r041 = log10(inF0); + float r042 = log2(inF0); + float r043 = max(inF0, inF1); + float r044 = min(inF0, inF1); + float r045 = pow(inF0, inF1); + float r046 = radians(inF0); + float r047 = rcp(inF0); + uint r048 = reversebits(2); + float r049 = round(inF0); + float r050 = rsqrt(inF0); + float r051 = saturate(inF0); + float r052 = sign(inF0); + float r053 = sin(inF0); sincos(inF0, inF1, inF2); - sinh(inF0); - smoothstep(inF0, inF1, inF2); - sqrt(inF0); - step(inF0, inF1); - tan(inF0); - tanh(inF0); + float r055 = sinh(inF0); + float r056 = smoothstep(inF0, inF1, inF2); + float r057 = sqrt(inF0); + float r058 = step(inF0, inF1); + float r059 = tan(inF0); + float r060 = tanh(inF0); // TODO: sampler intrinsics, when we can declare the types. - trunc(inF0); + float r061 = trunc(inF0); return 0.0; } -float1 PixelShaderFunction(float1 inF0, float1 inF1, float1 inF2) +float1 PixelShaderFunction1(float1 inF0, float1 inF1, float1 inF2) { // TODO: ... add when float1 prototypes are generated return 0.0; } -float2 PixelShaderFunction(float2 inF0, float2 inF1, float2 inF2, uint2 inU0, uint2 inU1) +float2 PixelShaderFunction2(float2 inF0, float2 inF1, float2 inF2, uint2 inU0, uint2 inU1) { uint2 out_u2; - all(inF0); - abs(inF0); - acos(inF0); - any(inF0); - asin(inF0); - asint(inF0); - asuint(inF0); - asfloat(inU0); + bool r000 = all(inF0); + float2 r001 = abs(inF0); + float2 r002 = acos(inF0); + bool r003 = any(inF0); + float2 r004 = asin(inF0); + int2 r005 = asint(inF0); + uint2 r006 = asuint(inF0); + float2 r007 = asfloat(inU0); // asdouble(inU0, inU1); // TODO: enable when HLSL parser used for intrinsics - atan(inF0); - atan2(inF0, inF1); - ceil(inF0); - clamp(inF0, inF1, inF2); + float2 r009 = atan(inF0); + float2 r010 = atan2(inF0, inF1); + float2 r011 = ceil(inF0); + float2 r012 = clamp(inF0, inF1, inF2); clip(inF0); - cos(inF0); - cosh(inF0); - countbits(int2(7,3)); - ddx(inF0); - ddx_coarse(inF0); - ddx_fine(inF0); - ddy(inF0); - ddy_coarse(inF0); - ddy_fine(inF0); - degrees(inF0); - distance(inF0, inF1); - dot(inF0, inF1); + float2 r013 = cos(inF0); + float2 r015 = cosh(inF0); + uint2 r016 = countbits(int2(7,3)); + float2 r017 = ddx(inF0); + float2 r018 = ddx_coarse(inF0); + float2 r019 = ddx_fine(inF0); + float2 r020 = ddy(inF0); + float2 r021 = ddy_coarse(inF0); + float2 r022 = ddy_fine(inF0); + float2 r023 = degrees(inF0); // EvaluateAttributeAtCentroid(inF0); // EvaluateAttributeAtSample(inF0, 0); // TODO: EvaluateAttributeSnapped(inF0, int2(1,2)); - exp(inF0); - exp2(inF0); - faceforward(inF0, inF1, inF2); - firstbithigh(7); - firstbitlow(7); - floor(inF0); + float r026 = distance(inF0, inF1); + float r027 = dot(inF0, inF1); + // EvaluateAttributeAtCentroid(inF0); + // EvaluateAttributeAtSample(inF0, 0); + // TODO: EvaluateAttributeSnapped(inF0, int2(1,2)); + float2 r028 = exp(inF0); + float2 r029 = exp2(inF0); + float2 r030 = faceforward(inF0, inF1, inF2); + uint2 r031 = firstbithigh(uint2(7,8)); + uint2 r032 = firstbitlow(uint2(7,8)); + float2 r033 = floor(inF0); // TODO: fma(inD0, inD1, inD2); - fmod(inF0, inF1); - frac(inF0); - frexp(inF0, inF1); - fwidth(inF0); - isinf(inF0); - isnan(inF0); - ldexp(inF0, inF1); - length(inF0); - log(inF0); - log10(inF0); - log2(inF0); - max(inF0, inF1); - min(inF0, inF1); - normalize(inF0); - pow(inF0, inF1); - radians(inF0); - rcp(inF0); - reflect(inF0, inF1); - refract(inF0, inF1, 2.0); - reversebits(int2(1,2)); - round(inF0); - rsqrt(inF0); - saturate(inF0); - sign(inF0); - sin(inF0); + float2 r035 = fmod(inF0, inF1); + float2 r036 = frac(inF0); + float2 r037 = frexp(inF0, inF1); + float2 r038 = fwidth(inF0); + bool2 r039 = isinf(inF0); + bool2 r040 = isnan(inF0); + float2 r041 = ldexp(inF0, inF1); + float2 r039a = lerp(inF0, inF1, inF2); + float r042 = length(inF0); + float2 r043 = log(inF0); + float2 r044 = log10(inF0); + float2 r045 = log2(inF0); + float2 r046 = max(inF0, inF1); + float2 r047 = min(inF0, inF1); + float2 r048 = normalize(inF0); + float2 r049 = pow(inF0, inF1); + float2 r050 = radians(inF0); + float2 r051 = rcp(inF0); + float2 r052 = reflect(inF0, inF1); + float2 r053 = refract(inF0, inF1, 2.0); + uint2 r054 = reversebits(uint2(1,2)); + float2 r055 = round(inF0); + float2 r056 = rsqrt(inF0); + float2 r057 = saturate(inF0); + float2 r058 = sign(inF0); + float2 r059 = sin(inF0); sincos(inF0, inF1, inF2); - sinh(inF0); - smoothstep(inF0, inF1, inF2); - sqrt(inF0); - step(inF0, inF1); - tan(inF0); - tanh(inF0); + float2 r060 = sinh(inF0); + float2 r061 = smoothstep(inF0, inF1, inF2); + float2 r062 = sqrt(inF0); + float2 r063 = step(inF0, inF1); + float2 r064 = tan(inF0); + float2 r065 = tanh(inF0); // TODO: sampler intrinsics, when we can declare the types. - trunc(inF0); + float2 r066 = trunc(inF0); // TODO: ... add when float1 prototypes are generated return float2(1,2); } -float3 PixelShaderFunction(float3 inF0, float3 inF1, float3 inF2, uint3 inU0, uint3 inU1) +float3 PixelShaderFunction3(float3 inF0, float3 inF1, float3 inF2, uint3 inU0, uint3 inU1) { uint3 out_u3; - all(inF0); - abs(inF0); - acos(inF0); - any(inF0); - asin(inF0); - asint(inF0); - asuint(inF0); - asfloat(inU0); + bool r000 = all(inF0); + float3 r001 = abs(inF0); + float3 r002 = acos(inF0); + bool r003 = any(inF0); + float3 r004 = asin(inF0); + int3 r005 = asint(inF0); + uint3 r006 = asuint(inF0); + float3 r007 = asfloat(inU0); // asdouble(inU0, inU1); // TODO: enable when HLSL parser used for intrinsics - atan(inF0); - atan2(inF0, inF1); - ceil(inF0); - clamp(inF0, inF1, inF2); + float3 r009 = atan(inF0); + float3 r010 = atan2(inF0, inF1); + float3 r011 = ceil(inF0); + float3 r012 = clamp(inF0, inF1, inF2); clip(inF0); - cos(inF0); - cosh(inF0); - countbits(int3(7,3,5)); - cross(inF0, inF1); - ddx(inF0); - ddx_coarse(inF0); - ddx_fine(inF0); - ddy(inF0); - ddy_coarse(inF0); - ddy_fine(inF0); - degrees(inF0); - distance(inF0, inF1); - dot(inF0, inF1); + float3 r013 = cos(inF0); + float3 r014 = cosh(inF0); + uint3 r015 = countbits(uint3(7,3,5)); + float3 r016 = cross(inF0, inF1); + float3 r017 = ddx(inF0); + float3 r018 = ddx_coarse(inF0); + float3 r019 = ddx_fine(inF0); + float3 r020 = ddy(inF0); + float3 r021 = ddy_coarse(inF0); + float3 r022 = ddy_fine(inF0); + float3 r023 = degrees(inF0); + float r024 = distance(inF0, inF1); + float r025 = dot(inF0, inF1); // EvaluateAttributeAtCentroid(inF0); // EvaluateAttributeAtSample(inF0, 0); // TODO: EvaluateAttributeSnapped(inF0, int2(1,2)); - exp(inF0); - exp2(inF0); - faceforward(inF0, inF1, inF2); - firstbithigh(7); - firstbitlow(7); - floor(inF0); + float3 r029 = exp(inF0); + float3 r030 = exp2(inF0); + float3 r031 = faceforward(inF0, inF1, inF2); + uint3 r032 = firstbithigh(uint3(2,3,4)); + uint3 r033 = firstbitlow(uint3(2,3,4)); + float3 r034 = floor(inF0); // TODO: fma(inD0, inD1, inD2); - fmod(inF0, inF1); - frac(inF0); - frexp(inF0, inF1); - fwidth(inF0); - isinf(inF0); - isnan(inF0); - ldexp(inF0, inF1); - length(inF0); - log(inF0); - log10(inF0); - log2(inF0); - max(inF0, inF1); - min(inF0, inF1); - normalize(inF0); - pow(inF0, inF1); - radians(inF0); - rcp(inF0); - reflect(inF0, inF1); - refract(inF0, inF1, 2.0); - reversebits(int3(1,2,3)); - round(inF0); - rsqrt(inF0); - saturate(inF0); - sign(inF0); - sin(inF0); + float3 r036 = fmod(inF0, inF1); + float3 r037 = frac(inF0); + float3 r038 = frexp(inF0, inF1); + float3 r039 = fwidth(inF0); + bool3 r040 = isinf(inF0); + bool3 r041 = isnan(inF0); + float3 r042 = ldexp(inF0, inF1); + float3 r039a = lerp(inF0, inF1, inF2); + float r043 = length(inF0); + float3 r044 = log(inF0); + float3 r045 = log10(inF0); + float3 r046 = log2(inF0); + float3 r047 = max(inF0, inF1); + float3 r048 = min(inF0, inF1); + float3 r049 = normalize(inF0); + float3 r050 = pow(inF0, inF1); + float3 r051 = radians(inF0); + float3 r052 = rcp(inF0); + float3 r053 = reflect(inF0, inF1); + float3 r054 = refract(inF0, inF1, 2.0); + uint3 r055 = reversebits(uint3(1,2,3)); + float3 r056 = round(inF0); + float3 r057 = rsqrt(inF0); + float3 r058 = saturate(inF0); + float3 r059 = sign(inF0); + float3 r060 = sin(inF0); sincos(inF0, inF1, inF2); - sinh(inF0); - smoothstep(inF0, inF1, inF2); - sqrt(inF0); - step(inF0, inF1); - tan(inF0); - tanh(inF0); + float3 r061 = sinh(inF0); + float3 r062 = smoothstep(inF0, inF1, inF2); + float3 r063 = sqrt(inF0); + float3 r064 = step(inF0, inF1); + float3 r065 = tan(inF0); + float3 r066 = tanh(inF0); // TODO: sampler intrinsics, when we can declare the types. - trunc(inF0); + float3 r067 = trunc(inF0); // TODO: ... add when float1 prototypes are generated return float3(1,2,3); @@ -253,77 +259,78 @@ float4 PixelShaderFunction(float4 inF0, float4 inF1, float4 inF2, uint4 inU0, ui { uint4 out_u4; - all(inF0); - abs(inF0); - acos(inF0); - any(inF0); - asin(inF0); - asint(inF0); - asuint(inF0); - asfloat(inU0); + bool r000 = all(inF0); + float4 r001 = abs(inF0); + float4 r002 = acos(inF0); + bool r003 = any(inF0); + float4 r004 = asin(inF0); + int4 r005 = asint(inF0); + uint4 r006 = asuint(inF0); + float4 r007 = asfloat(inU0); // asdouble(inU0, inU1); // TODO: enable when HLSL parser used for intrinsics - atan(inF0); - atan2(inF0, inF1); - ceil(inF0); - clamp(inF0, inF1, inF2); + float4 r009 = atan(inF0); + float4 r010 = atan2(inF0, inF1); + float4 r011 = ceil(inF0); + float4 r012 = clamp(inF0, inF1, inF2); clip(inF0); - cos(inF0); - cosh(inF0); - countbits(int4(7,3,5,2)); - ddx(inF0); - ddx_coarse(inF0); - ddx_fine(inF0); - ddy(inF0); - ddy_coarse(inF0); - ddy_fine(inF0); - degrees(inF0); - distance(inF0, inF1); - dot(inF0, inF1); - dst(inF0, inF1); + float4 r013 = cos(inF0); + float4 r014 = cosh(inF0); + uint4 r015 = countbits(uint4(7,3,5,2)); + float4 r016 = ddx(inF0); + float4 r017 = ddx_coarse(inF0); + float4 r018 = ddx_fine(inF0); + float4 r019 = ddy(inF0); + float4 r020 = ddy_coarse(inF0); + float4 r021 = ddy_fine(inF0); + float4 r022 = degrees(inF0); + float r023 = distance(inF0, inF1); + float r024 = dot(inF0, inF1); + float4 r025 = dst(inF0, inF1); // EvaluateAttributeAtCentroid(inF0); // EvaluateAttributeAtSample(inF0, 0); // TODO: EvaluateAttributeSnapped(inF0, int2(1,2)); - exp(inF0); - exp2(inF0); - faceforward(inF0, inF1, inF2); - firstbithigh(7); - firstbitlow(7); - floor(inF0); + float4 r029 = exp(inF0); + float4 r030 = exp2(inF0); + float4 r031 = faceforward(inF0, inF1, inF2); + uint4 r032 = firstbithigh(uint4(7,8,9,10)); + uint4 r033 = firstbitlow(uint4(7,8,9,10)); + float4 r034 = floor(inF0); // TODO: fma(inD0, inD1, inD2); - fmod(inF0, inF1); - frac(inF0); - frexp(inF0, inF1); - fwidth(inF0); - isinf(inF0); - isnan(inF0); - ldexp(inF0, inF1); - length(inF0); - log(inF0); - log10(inF0); - log2(inF0); - max(inF0, inF1); - min(inF0, inF1); - normalize(inF0); - pow(inF0, inF1); - radians(inF0); - rcp(inF0); - reflect(inF0, inF1); - refract(inF0, inF1, 2.0); - reversebits(int4(1,2,3,4)); - round(inF0); - rsqrt(inF0); - saturate(inF0); - sign(inF0); - sin(inF0); + float4 r036 = fmod(inF0, inF1); + float4 r037 = frac(inF0); + float4 r038 = frexp(inF0, inF1); + float4 r039 = fwidth(inF0); + bool4 r040 = isinf(inF0); + bool4 r041 = isnan(inF0); + float4 r042 = ldexp(inF0, inF1); + float4 r039a = lerp(inF0, inF1, inF2); + float r043 = length(inF0); + float4 r044 = log(inF0); + float4 r045 = log10(inF0); + float4 r046 = log2(inF0); + float4 r047 = max(inF0, inF1); + float4 r048 = min(inF0, inF1); + float4 r049 = normalize(inF0); + float4 r050 = pow(inF0, inF1); + float4 r051 = radians(inF0); + float4 r052 = rcp(inF0); + float4 r053 = reflect(inF0, inF1); + float4 r054 = refract(inF0, inF1, 2.0); + uint4 r055 = reversebits(uint4(1,2,3,4)); + float4 r056 = round(inF0); + float4 r057 = rsqrt(inF0); + float4 r058 = saturate(inF0); + float4 r059 = sign(inF0); + float4 r060 = sin(inF0); sincos(inF0, inF1, inF2); - sinh(inF0); - smoothstep(inF0, inF1, inF2); - sqrt(inF0); - step(inF0, inF1); - tan(inF0); - tanh(inF0); + float4 r061 = sinh(inF0); + float4 r062 = smoothstep(inF0, inF1, inF2); + float4 r063 = sqrt(inF0); + float4 r064 = step(inF0, inF1); + float4 r065 = tan(inF0); + float4 r066 = tanh(inF0); // TODO: sampler intrinsics, when we can declare the types. - trunc(inF0); + float4 r067 = trunc(inF0); // TODO: ... add when float1 prototypes are generated return float4(1,2,3,4); @@ -335,83 +342,82 @@ float4 PixelShaderFunction(float4 inF0, float4 inF1, float4 inF2, uint4 inU0, ui // asuint(inF0); \ // TODO: FXC doesn't accept this with (), but glslang doesn't accept it without. -#define MATFNS() \ - all(inF0); \ - abs(inF0); \ - acos(inF0); \ - any(inF0); \ - asin(inF0); \ - atan(inF0); \ - atan2(inF0, inF1); \ - ceil(inF0); \ - clip(inF0); \ - clamp(inF0, inF1, inF2); \ - cos(inF0); \ - cosh(inF0); \ - ddx(inF0); \ - ddx_coarse(inF0); \ - ddx_fine(inF0); \ - ddy(inF0); \ - ddy_coarse(inF0); \ - ddy_fine(inF0); \ - degrees(inF0); \ - determinant(inF0); \ - exp(inF0); \ - exp2(inF0); \ - firstbithigh(7); \ - firstbitlow(7); \ - floor(inF0); \ - fmod(inF0, inF1); \ - frac(inF0); \ - frexp(inF0, inF1); \ - fwidth(inF0); \ - ldexp(inF0, inF1); \ - log(inF0); \ - log10(inF0); \ - log2(inF0); \ - max(inF0, inF1); \ - min(inF0, inF1); \ - pow(inF0, inF1); \ - radians(inF0); \ - round(inF0); \ - rsqrt(inF0); \ - saturate(inF0); \ - sign(inF0); \ - sin(inF0); \ - sincos(inF0, inF1, inF2); \ - sinh(inF0); \ - smoothstep(inF0, inF1, inF2); \ - sqrt(inF0); \ - step(inF0, inF1); \ - tan(inF0); \ - tanh(inF0); \ - transpose(inF0); \ - trunc(inF0); +#define MATFNS(MT) \ + bool r000 = all(inF0); \ + MT r001 = abs(inF0); \ + acos(inF0); \ + bool r003 = any(inF0); \ + MT r004 = asin(inF0); \ + MT r005 = atan(inF0); \ + MT r006 = atan2(inF0, inF1); \ + MT r007 = ceil(inF0); \ + clip(inF0); \ + MT r008 = clamp(inF0, inF1, inF2); \ + MT r009 = cos(inF0); \ + MT r010 = cosh(inF0); \ + MT r011 = ddx(inF0); \ + MT r012 = ddx_coarse(inF0); \ + MT r013 = ddx_fine(inF0); \ + MT r014 = ddy(inF0); \ + MT r015 = ddy_coarse(inF0); \ + MT r016 = ddy_fine(inF0); \ + MT r017 = degrees(inF0); \ + float r018 = determinant(inF0); \ + MT r019 = exp(inF0); \ + MT R020 = exp2(inF0); \ + MT r021 = floor(inF0); \ + MT r022 = fmod(inF0, inF1); \ + MT r023 = frac(inF0); \ + MT r024 = frexp(inF0, inF1); \ + MT r025 = fwidth(inF0); \ + MT r026 = ldexp(inF0, inF1); \ + MT r026a = lerp(inF0, inF1, inF2); \ + MT r027 = log(inF0); \ + MT r028 = log10(inF0); \ + MT r029 = log2(inF0); \ + MT r030 = max(inF0, inF1); \ + MT r031 = min(inF0, inF1); \ + MT r032 = pow(inF0, inF1); \ + MT r033 = radians(inF0); \ + MT r034 = round(inF0); \ + MT r035 = rsqrt(inF0); \ + MT r036 = saturate(inF0); \ + MT r037 = sign(inF0); \ + MT r038 = sin(inF0); \ + sincos(inF0, inF1, inF2); \ + MT r039 = sinh(inF0); \ + MT r049 = smoothstep(inF0, inF1, inF2); \ + MT r041 = sqrt(inF0); \ + MT r042 = step(inF0, inF1); \ + MT r043 = tan(inF0); \ + MT r044 = tanh(inF0); \ + transpose(inF0); \ + MT r046 = trunc(inF0); // TODO: turn on non-square matrix tests when protos are available. -float2x2 PixelShaderFunction(float2x2 inF0, float2x2 inF1, float2x2 inF2) +float2x2 PixelShaderFunction2x2(float2x2 inF0, float2x2 inF1, float2x2 inF2) { // TODO: FXC doesn't accept this with (), but glslang doesn't accept it without. - MATFNS() + MATFNS(float2x2); // TODO: ... add when float1 prototypes are generated return float2x2(2,2,2,2); } -float3x3 PixelShaderFunction(float3x3 inF0, float3x3 inF1, float3x3 inF2) +float3x3 PixelShaderFunction3x3(float3x3 inF0, float3x3 inF1, float3x3 inF2) { // TODO: FXC doesn't accept this with (), but glslang doesn't accept it without. - MATFNS() + MATFNS(float3x3); // TODO: ... add when float1 prototypes are generated return float3x3(3,3,3,3,3,3,3,3,3); } -float4x4 PixelShaderFunction(float4x4 inF0, float4x4 inF1, float4x4 inF2) +float4x4 PixelShaderFunction4x4(float4x4 inF0, float4x4 inF1, float4x4 inF2) { // TODO: FXC doesn't accept this with (), but glslang doesn't accept it without. - MATFNS() + MATFNS(float4x4); // TODO: ... add when float1 prototypes are generated return float4x4(4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4); @@ -429,23 +435,49 @@ float4x4 PixelShaderFunction(float4x4 inF0, float4x4 inF1, float4x4 inF2) MT r8 = mul(inFM0, inFM1); -void TestGenMul(float inF0, float inF1, +void TestGenMul2(float inF0, float inF1, float2 inFV0, float2 inFV1, float2x2 inFM0, float2x2 inFM1) { TESTGENMUL(float, float2, float2x2); } -void TestGenMul(float inF0, float inF1, +void TestGenMul3(float inF0, float inF1, float3 inFV0, float3 inFV1, float3x3 inFM0, float3x3 inFM1) { TESTGENMUL(float, float3, float3x3); } -void TestGenMul(float inF0, float inF1, +void TestGenMul4(float inF0, float inF1, float4 inFV0, float4 inFV1, float4x4 inFM0, float4x4 inFM1) { TESTGENMUL(float, float4, float4x4); } + +// Test some non-square mats +void TestGenMulNxM(float inF0, float inF1, + float2 inFV2, float3 inFV3, + float2x3 inFM2x3, float3x2 inFM3x2, + float3x3 inFM3x3, float3x4 inFM3x4, + float2x4 inFM2x4) +{ + float r00 = mul(inF0, inF1); // S=S*S + float2 r01 = mul(inFV2, inF0); // V=V*S + float3 r02 = mul(inFV3, inF0); // V=V*S + float2 r03 = mul(inF0, inFV2); // V=S*V + float3 r04 = mul(inF0, inFV3); // V=S*V + float r05 = mul(inFV2, inFV2); // S=V*V + float r06 = mul(inFV3, inFV3); // S=V*V + float3 r07 = mul(inFV2, inFM2x3); // V=V*M (return V dim is Mcols) + float2 r08 = mul(inFV3, inFM3x2); // V=V*M (return V dim is Mcols) + float2 r09 = mul(inFM2x3, inFV3); // V=M*V (return V dim is Mrows) + float3 r10 = mul(inFM3x2, inFV2); // V=M*V (return V dim is Mrows) + float2x3 r11 = mul(inFM2x3, inF0); + float3x2 r12 = mul(inFM3x2, inF0); + float2x2 r13 = mul(inFM2x3, inFM3x2); + float2x3 r14 = mul(inFM2x3, inFM3x3); + float2x4 r15 = mul(inFM2x3, inFM3x4); + float3x4 r16 = mul(inFM3x2, inFM2x4); +} diff --git a/Test/hlsl.intrinsics.negative.comp b/Test/hlsl.intrinsics.negative.comp index 1b2ecd95..c89d04bc 100644 --- a/Test/hlsl.intrinsics.negative.comp +++ b/Test/hlsl.intrinsics.negative.comp @@ -1,4 +1,4 @@ -float ComputeShaderFunction(float inF0, float inF1, float inF2, int inI0) +float ComputeShaderFunctionS(float inF0, float inF1, float inF2, int inI0) { uint out_u1; @@ -23,7 +23,7 @@ float ComputeShaderFunction(float inF0, float inF1, float inF2, int inI0) f16tof32(inF0); // expected error: only integer inputs firstbithigh(inF0); // expected error: only integer inputs firstbitlow(inF0); // expected error: only integer inputs - fma(inF0, inF1, inF2); // expected error: only double inputs + // fma(inF0, inF1, inF2); // TODO: this might auto-promote: need to check against FXC fwidth(inF0); // expected error: only valid in pixel stage InterlockedAdd(gs_ua, gs_ub); // expected error: only valid in pixel stage InterlockedAdd(gs_ua, gs_ub, out_u1); // expected error: only valid in pixel stage @@ -53,7 +53,7 @@ float ComputeShaderFunction(float inF0, float inF1, float inF2, int inI0) return 0.0; } -float1 ComputeShaderFunction(float1 inF0, float1 inF1, float1 inF2, int1 inI0) +float1 ComputeShaderFunction1(float1 inF0, float1 inF1, float1 inF2, int1 inI0) { // TODO: ... add when float1 prototypes are generated @@ -62,7 +62,7 @@ float1 ComputeShaderFunction(float1 inF0, float1 inF1, float1 inF2, int1 inI0) return 0.0; } -float2 ComputeShaderFunction(float2 inF0, float2 inF1, float2 inF2, int2 inI0) +float2 ComputeShaderFunction2(float2 inF0, float2 inF1, float2 inF2, int2 inI0) { uint2 out_u2; @@ -84,7 +84,7 @@ float2 ComputeShaderFunction(float2 inF0, float2 inF1, float2 inF2, int2 inI0) f16tof32(inF0); // expected error: only integer inputs firstbithigh(inF0); // expected error: only integer inputs firstbitlow(inF0); // expected error: only integer inputs - fma(inF0, inF1, inF2); // expected error: only double inputs + // fma(inF0, inF1, inF2); // TODO: this might auto-promote: need to check against FXC fwidth(inF0); // expected error: only valid in pixel stage InterlockedAdd(gs_ua2, gs_ub2); // expected error: only valid in pixel stage InterlockedAdd(gs_ua2, gs_ub2, out_u2); // expected error: only valid in pixel stage @@ -109,7 +109,7 @@ float2 ComputeShaderFunction(float2 inF0, float2 inF1, float2 inF2, int2 inI0) return float2(1,2); } -float3 ComputeShaderFunction(float3 inF0, float3 inF1, float3 inF2, int3 inI0) +float3 ComputeShaderFunction3(float3 inF0, float3 inF1, float3 inF2, int3 inI0) { uint3 out_u3; @@ -129,7 +129,7 @@ float3 ComputeShaderFunction(float3 inF0, float3 inF1, float3 inF2, int3 inI0) f16tof32(inF0); // expected error: only integer inputs firstbithigh(inF0); // expected error: only integer inputs firstbitlow(inF0); // expected error: only integer inputs - fma(inF0, inF1, inF2); // expected error: only double inputs + // fma(inF0, inF1, inF2); // TODO: this might auto-promote: need to check against FXC fwidth(inF0); // expected error: only valid in pixel stage InterlockedAdd(gs_ua3, gs_ub3); // expected error: only valid in pixel stage InterlockedAdd(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage @@ -174,7 +174,7 @@ float4 ComputeShaderFunction(float4 inF0, float4 inF1, float4 inF2, int4 inI0) f16tof32(inF0); // expected error: only integer inputs firstbithigh(inF0); // expected error: only integer inputs firstbitlow(inF0); // expected error: only integer inputs - fma(inF0, inF1, inF2); // expected error: only double inputs + // fma(inF0, inF1, inF2); // TODO: this might auto-promote: need to check against FXC fwidth(inF0); // expected error: only valid in pixel stage InterlockedAdd(gs_ua4, gs_ub4); // expected error: only valid in pixel stage InterlockedAdd(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage diff --git a/Test/hlsl.intrinsics.negative.frag b/Test/hlsl.intrinsics.negative.frag index ddbac06a..8afaf877 100644 --- a/Test/hlsl.intrinsics.negative.frag +++ b/Test/hlsl.intrinsics.negative.frag @@ -1,4 +1,4 @@ -float PixelShaderFunction(float inF0, float inF1, float inF2, int inI0) +float PixelShaderFunctionS(float inF0, float inF1, float inF2, int inI0) { // AllMemoryBarrier(); // TODO: expected error: invalid in fragment stage // AllMemoryBarrierWithGroupSync(); // TODO: expected error: invalid in fragment stage @@ -12,7 +12,7 @@ float PixelShaderFunction(float inF0, float inF1, float inF2, int inI0) f16tof32(inF0); // expected error: only integer inputs firstbithigh(inF0); // expected error: only integer inputs firstbitlow(inF0); // expected error: only integer inputs - fma(inF0, inF1, inF2); // expected error: only double inputs + // fma(inF0, inF1, inF2); // TODO: this might auto-promote: need to check against FXC // InterlockedAdd(inI0, inI0, 3); // expected error: last parameter is out TODO: accepted even though marked as out in proto generator // InterlockedAnd(inI0, inI0, 3); // expected error: last parameter is out TODO: accepted even though marked as out i // InterlockedMax(inI0, inI0, 3); // expected error: last parameter is out TODO: accepted even though marked as out in proto generator // InterlockedMin(inI0, inI0, 3); // expected error: last parameter is out TODO: accepted even though marked as out in proto generator @@ -32,7 +32,7 @@ float PixelShaderFunction(float inF0, float inF1, float inF2, int inI0) return 0.0; } -float1 PixelShaderFunction(float1 inF0, float1 inF1, float1 inF2, int1 inI0) +float1 PixelShaderFunction1(float1 inF0, float1 inF1, float1 inF2, int1 inI0) { // TODO: ... add when float1 prototypes are generated @@ -41,7 +41,7 @@ float1 PixelShaderFunction(float1 inF0, float1 inF1, float1 inF2, int1 inI0) return 0.0; } -float2 PixelShaderFunction(float2 inF0, float2 inF1, float2 inF2, int2 inI0) +float2 PixelShaderFunction2(float2 inF0, float2 inF1, float2 inF2, int2 inI0) { asdouble(inF0, inF1); // expected error: only integer inputs CheckAccessFullyMapped(inF0); // expected error: only valid on scalars @@ -52,14 +52,14 @@ float2 PixelShaderFunction(float2 inF0, float2 inF1, float2 inF2, int2 inI0) f16tof32(inF0); // expected error: only integer inputs firstbithigh(inF0); // expected error: only integer inputs firstbitlow(inF0); // expected error: only integer inputs - fma(inF0, inF1, inF2); // expected error: only double inputs + // fma(inF0, inF1, inF2); // TODO: this might auto-promote: need to check against FXC reversebits(inF0); // expected error: only integer inputs transpose(inF0); // expected error: only valid on mats return float2(1,2); } -float3 PixelShaderFunction(float3 inF0, float3 inF1, float3 inF2, int3 inI0) +float3 PixelShaderFunction3(float3 inF0, float3 inF1, float3 inF2, int3 inI0) { CheckAccessFullyMapped(inF0); // expected error: only valid on scalars countbits(inF0); // expected error: only integer inputs @@ -68,7 +68,7 @@ float3 PixelShaderFunction(float3 inF0, float3 inF1, float3 inF2, int3 inI0) f16tof32(inF0); // expected error: only integer inputs firstbithigh(inF0); // expected error: only integer inputs firstbitlow(inF0); // expected error: only integer inputs - fma(inF0, inF1, inF2); // expected error: only double inputs + // fma(inF0, inF1, inF2); // TODO: this might auto-promote: need to check against FXC reversebits(inF0); // expected error: only integer inputs transpose(inF0); // expected error: only valid on mats @@ -85,7 +85,7 @@ float4 PixelShaderFunction(float4 inF0, float4 inF1, float4 inF2, int4 inI0) f16tof32(inF0); // expected error: only integer inputs firstbithigh(inF0); // expected error: only integer inputs firstbitlow(inF0); // expected error: only integer inputs - fma(inF0, inF1, inF2); // expected error: only double inputs + // fma(inF0, inF1, inF2); // TODO: this might auto-promote: need to check against FXC reversebits(inF0); // expected error: only integer inputs transpose(inF0); // expected error: only valid on mats @@ -100,7 +100,6 @@ float4 PixelShaderFunction(float4 inF0, float4 inF1, float4 inF2, int4 inI0) f16tof32(inF0); \ firstbithigh(inF0); \ firstbitlow(inF0); \ - fma(inF0, inF1, inF2); \ reversebits(inF0); \ length(inF0); \ noise(inF0); \ @@ -112,7 +111,7 @@ float4 PixelShaderFunction(float4 inF0, float4 inF1, float4 inF2, int4 inI0) // TODO: turn on non-square matrix tests when protos are available. -float2x2 PixelShaderFunction(float2x2 inF0, float2x2 inF1, float2x2 inF2) +float2x2 PixelShaderFunction2x2(float2x2 inF0, float2x2 inF1, float2x2 inF2) { // TODO: FXC doesn't accept this with (), but glslang doesn't accept it without. MATFNS() @@ -120,7 +119,7 @@ float2x2 PixelShaderFunction(float2x2 inF0, float2x2 inF1, float2x2 inF2) return float2x2(2,2,2,2); } -float3x3 PixelShaderFunction(float3x3 inF0, float3x3 inF1, float3x3 inF2) +float3x3 PixelShaderFunction3x3(float3x3 inF0, float3x3 inF1, float3x3 inF2) { // TODO: FXC doesn't accept this with (), but glslang doesn't accept it without. MATFNS() @@ -128,7 +127,7 @@ float3x3 PixelShaderFunction(float3x3 inF0, float3x3 inF1, float3x3 inF2) return float3x3(3,3,3,3,3,3,3,3,3); } -float4x4 PixelShaderFunction(float4x4 inF0, float4x4 inF1, float4x4 inF2) +float4x4 PixelShaderFunction4x4(float4x4 inF0, float4x4 inF1, float4x4 inF2) { // TODO: FXC doesn't accept this with (), but glslang doesn't accept it without. MATFNS() diff --git a/Test/hlsl.intrinsics.negative.vert b/Test/hlsl.intrinsics.negative.vert index e716c688..a5030cf1 100644 --- a/Test/hlsl.intrinsics.negative.vert +++ b/Test/hlsl.intrinsics.negative.vert @@ -11,7 +11,7 @@ uint4 gs_ua4; uint4 gs_ub4; uint4 gs_uc4; -float VertexShaderFunction(float inF0, float inF1, float inF2, int inI0) +float VertexShaderFunctionS(float inF0, float inF1, float inF2, int inI0) { uint out_u1; @@ -39,7 +39,7 @@ float VertexShaderFunction(float inF0, float inF1, float inF2, int inI0) f16tof32(inF0); // expected error: only integer inputs firstbithigh(inF0); // expected error: only integer inputs firstbitlow(inF0); // expected error: only integer inputs - fma(inF0, inF1, inF2); // expected error: only double inputs + // fma(inF0, inF1, inF2); // TODO: this might auto-promote: need to check against FXC fwidth(inF0); // expected error: only valid in pixel stage InterlockedAdd(gs_ua, gs_ub); // expected error: only valid in pixel stage InterlockedAdd(gs_ua, gs_ub, out_u1); // expected error: only valid in pixel stage @@ -71,7 +71,7 @@ float VertexShaderFunction(float inF0, float inF1, float inF2, int inI0) return 0.0; } -float1 VertexShaderFunction(float1 inF0, float1 inF1, float1 inF2, int1 inI0) +float1 VertexShaderFunction1(float1 inF0, float1 inF1, float1 inF2, int1 inI0) { // TODO: ... add when float1 prototypes are generated @@ -80,7 +80,7 @@ float1 VertexShaderFunction(float1 inF0, float1 inF1, float1 inF2, int1 inI0) return 0.0; } -float2 VertexShaderFunction(float2 inF0, float2 inF1, float2 inF2, int2 inI0) +float2 VertexShaderFunction2(float2 inF0, float2 inF1, float2 inF2, int2 inI0) { uint2 out_u2; @@ -102,7 +102,7 @@ float2 VertexShaderFunction(float2 inF0, float2 inF1, float2 inF2, int2 inI0) f16tof32(inF0); // expected error: only integer inputs firstbithigh(inF0); // expected error: only integer inputs firstbitlow(inF0); // expected error: only integer inputs - fma(inF0, inF1, inF2); // expected error: only double inputs + // fma(inF0, inF1, inF2); // TODO: this might auto-promote: need to check against FXC fwidth(inF0); // expected error: only valid in pixel stage InterlockedAdd(gs_ua2, gs_ub2); // expected error: only valid in pixel stage InterlockedAdd(gs_ua2, gs_ub2, out_u2); // expected error: only valid in pixel stage @@ -127,7 +127,7 @@ float2 VertexShaderFunction(float2 inF0, float2 inF1, float2 inF2, int2 inI0) return float2(1,2); } -float3 VertexShaderFunction(float3 inF0, float3 inF1, float3 inF2, int3 inI0) +float3 VertexShaderFunction3(float3 inF0, float3 inF1, float3 inF2, int3 inI0) { uint3 out_u3; @@ -147,7 +147,7 @@ float3 VertexShaderFunction(float3 inF0, float3 inF1, float3 inF2, int3 inI0) f16tof32(inF0); // expected error: only integer inputs firstbithigh(inF0); // expected error: only integer inputs firstbitlow(inF0); // expected error: only integer inputs - fma(inF0, inF1, inF2); // expected error: only double inputs + // fma(inF0, inF1, inF2); // TODO: this might auto-promote: need to check against FXC fwidth(inF0); // expected error: only valid in pixel stage InterlockedAdd(gs_ua3, gs_ub3); // expected error: only valid in pixel stage InterlockedAdd(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage @@ -192,7 +192,7 @@ float4 VertexShaderFunction(float4 inF0, float4 inF1, float4 inF2, int4 inI0) f16tof32(inF0); // expected error: only integer inputs firstbithigh(inF0); // expected error: only integer inputs firstbitlow(inF0); // expected error: only integer inputs - fma(inF0, inF1, inF2); // expected error: only double inputs + // fma(inF0, inF1, inF2); // TODO: this might auto-promote: need to check against FXC fwidth(inF0); // expected error: only valid in pixel stage InterlockedAdd(gs_ua4, gs_ub4); // expected error: only valid in pixel stage InterlockedAdd(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage @@ -234,7 +234,6 @@ float4 VertexShaderFunction(float4 inF0, float4 inF1, float4 inF2, int4 inI0) f16tof32(inF0); \ firstbithigh(inF0); \ firstbitlow(inF0); \ - fma(inF0, inF1, inF2); \ fwidth(inF0); \ noise(inF0); \ reversebits(inF0); \ @@ -248,7 +247,7 @@ float4 VertexShaderFunction(float4 inF0, float4 inF1, float4 inF2, int4 inI0) // TODO: turn on non-square matrix tests when protos are available. -float2x2 VertexShaderFunction(float2x2 inF0, float2x2 inF1, float2x2 inF2) +float2x2 VertexShaderFunction2x2(float2x2 inF0, float2x2 inF1, float2x2 inF2) { // TODO: FXC doesn't accept this with (), but glslang doesn't accept it without. MATFNS() @@ -256,7 +255,7 @@ float2x2 VertexShaderFunction(float2x2 inF0, float2x2 inF1, float2x2 inF2) return float2x2(2,2,2,2); } -float3x3 VertexShaderFunction(float3x3 inF0, float3x3 inF1, float3x3 inF2) +float3x3 VertexShaderFunction3x3(float3x3 inF0, float3x3 inF1, float3x3 inF2) { // TODO: FXC doesn't accept this with (), but glslang doesn't accept it without. MATFNS() @@ -264,7 +263,7 @@ float3x3 VertexShaderFunction(float3x3 inF0, float3x3 inF1, float3x3 inF2) return float3x3(3,3,3,3,3,3,3,3,3); } -float4x4 VertexShaderFunction(float4x4 inF0, float4x4 inF1, float4x4 inF2) +float4x4 VertexShaderFunction4x4(float4x4 inF0, float4x4 inF1, float4x4 inF2) { // TODO: FXC doesn't accept this with (), but glslang doesn't accept it without. MATFNS() diff --git a/Test/hlsl.intrinsics.vert b/Test/hlsl.intrinsics.vert index c77404ed..de9476cb 100644 --- a/Test/hlsl.intrinsics.vert +++ b/Test/hlsl.intrinsics.vert @@ -1,4 +1,4 @@ -float VertexShaderFunction(float inF0, float inF1, float inF2, uint inU0, uint inU1) +float VertexShaderFunctionS(float inF0, float inF1, float inF2, uint inU0, uint inU1) { all(inF0); abs(inF0); @@ -32,6 +32,7 @@ float VertexShaderFunction(float inF0, float inF1, float inF2, uint inU0, uint i isinf(inF0); isnan(inF0); ldexp(inF0, inF1); + lerp(inF0, inF1, inF2); log(inF0); log10(inF0); log2(inF0); @@ -59,13 +60,13 @@ float VertexShaderFunction(float inF0, float inF1, float inF2, uint inU0, uint i return 0.0; } -float1 VertexShaderFunction(float1 inF0, float1 inF1, float1 inF2) +float1 VertexShaderFunction1(float1 inF0, float1 inF1, float1 inF2) { // TODO: ... add when float1 prototypes are generated return 0.0; } -float2 VertexShaderFunction(float2 inF0, float2 inF1, float2 inF2, uint2 inU0, uint2 inU1) +float2 VertexShaderFunction2(float2 inF0, float2 inF1, float2 inF2, uint2 inU0, uint2 inU1) { all(inF0); abs(inF0); @@ -102,6 +103,7 @@ float2 VertexShaderFunction(float2 inF0, float2 inF1, float2 inF2, uint2 inU0, u isinf(inF0); isnan(inF0); ldexp(inF0, inF1); + lerp(inF0, inF1, inF2); length(inF0); log(inF0); log10(inF0); @@ -134,7 +136,7 @@ float2 VertexShaderFunction(float2 inF0, float2 inF1, float2 inF2, uint2 inU0, u return float2(1,2); } -float3 VertexShaderFunction(float3 inF0, float3 inF1, float3 inF2, uint3 inU0, uint3 inU1) +float3 VertexShaderFunction3(float3 inF0, float3 inF1, float3 inF2, uint3 inU0, uint3 inU1) { all(inF0); abs(inF0); @@ -172,6 +174,7 @@ float3 VertexShaderFunction(float3 inF0, float3 inF1, float3 inF2, uint3 inU0, u isinf(inF0); isnan(inF0); ldexp(inF0, inF1); + lerp(inF0, inF1, inF2); length(inF0); log(inF0); log10(inF0); @@ -204,7 +207,7 @@ float3 VertexShaderFunction(float3 inF0, float3 inF1, float3 inF2, uint3 inU0, u return float3(1,2,3); } -float4 VertexShaderFunction(float4 inF0, float4 inF1, float4 inF2, uint4 inU0, uint4 inU1) +float4 VertexShaderFunction4(float4 inF0, float4 inF1, float4 inF2, uint4 inU0, uint4 inU1) { all(inF0); abs(inF0); @@ -242,6 +245,7 @@ float4 VertexShaderFunction(float4 inF0, float4 inF1, float4 inF2, uint4 inU0, u isinf(inF0); isnan(inF0); ldexp(inF0, inF1); + lerp(inF0, inF1, inF2); length(inF0); log(inF0); log10(inF0); @@ -303,6 +307,7 @@ float4 VertexShaderFunction(float4 inF0, float4 inF1, float4 inF2, uint4 inU0, u frac(inF0); \ frexp(inF0, inF1); \ ldexp(inF0, inF1); \ + lerp(inF0, inF1, inF2); \ log(inF0); \ log10(inF0); \ log2(inF0); \ @@ -327,7 +332,7 @@ float4 VertexShaderFunction(float4 inF0, float4 inF1, float4 inF2, uint4 inU0, u // TODO: turn on non-square matrix tests when protos are available. -float2x2 VertexShaderFunction(float2x2 inF0, float2x2 inF1, float2x2 inF2) +float2x2 VertexShaderFunction2x2(float2x2 inF0, float2x2 inF1, float2x2 inF2) { // TODO: FXC doesn't accept this with (), but glslang doesn't accept it without. MATFNS(); @@ -336,7 +341,7 @@ float2x2 VertexShaderFunction(float2x2 inF0, float2x2 inF1, float2x2 inF2) return float2x2(2,2,2,2); } -float3x3 VertexShaderFunction(float3x3 inF0, float3x3 inF1, float3x3 inF2) +float3x3 VertexShaderFunction3x3(float3x3 inF0, float3x3 inF1, float3x3 inF2) { // TODO: FXC doesn't accept this with (), but glslang doesn't accept it without. MATFNS(); @@ -345,7 +350,7 @@ float3x3 VertexShaderFunction(float3x3 inF0, float3x3 inF1, float3x3 inF2) return float3x3(3,3,3,3,3,3,3,3,3); } -float4x4 VertexShaderFunction(float4x4 inF0, float4x4 inF1, float4x4 inF2) +float4x4 VertexShaderFunction4x4(float4x4 inF0, float4x4 inF1, float4x4 inF2) { // TODO: FXC doesn't accept this with (), but glslang doesn't accept it without. MATFNS(); @@ -366,23 +371,49 @@ float4x4 VertexShaderFunction(float4x4 inF0, float4x4 inF1, float4x4 inF2) MT r8 = mul(inFM0, inFM1); -void TestGenMul(float inF0, float inF1, - float2 inFV0, float2 inFV1, - float2x2 inFM0, float2x2 inFM1) +void TestGenMul2(float inF0, float inF1, + float2 inFV0, float2 inFV1, + float2x2 inFM0, float2x2 inFM1) { TESTGENMUL(float, float2, float2x2); } -void TestGenMul(float inF0, float inF1, - float3 inFV0, float3 inFV1, - float3x3 inFM0, float3x3 inFM1) +void TestGenMul3(float inF0, float inF1, + float3 inFV0, float3 inFV1, + float3x3 inFM0, float3x3 inFM1) { TESTGENMUL(float, float3, float3x3); } -void TestGenMul(float inF0, float inF1, - float4 inFV0, float4 inFV1, - float4x4 inFM0, float4x4 inFM1) +void TestGenMul4(float inF0, float inF1, + float4 inFV0, float4 inFV1, + float4x4 inFM0, float4x4 inFM1) { TESTGENMUL(float, float4, float4x4); } + +// Test some non-square mats +void TestGenMulNxM(float inF0, float inF1, + float2 inFV2, float3 inFV3, + float2x3 inFM2x3, float3x2 inFM3x2, + float3x3 inFM3x3, float3x4 inFM3x4, + float2x4 inFM2x4) +{ + float r00 = mul(inF0, inF1); // S=S*S + float2 r01 = mul(inFV2, inF0); // V=V*S + float3 r02 = mul(inFV3, inF0); // V=V*S + float2 r03 = mul(inF0, inFV2); // V=S*V + float3 r04 = mul(inF0, inFV3); // V=S*V + float r05 = mul(inFV2, inFV2); // S=V*V + float r06 = mul(inFV3, inFV3); // S=V*V + float3 r07 = mul(inFV2, inFM2x3); // V=V*M (return V dim is Mcols) + float2 r08 = mul(inFV3, inFM3x2); // V=V*M (return V dim is Mcols) + float2 r09 = mul(inFM2x3, inFV3); // V=M*V (return V dim is Mrows) + float3 r10 = mul(inFM3x2, inFV2); // V=M*V (return V dim is Mrows) + float2x3 r11 = mul(inFM2x3, inF0); + float3x2 r12 = mul(inFM3x2, inF0); + float2x2 r13 = mul(inFM2x3, inFM3x2); + float2x3 r14 = mul(inFM2x3, inFM3x3); + float2x4 r15 = mul(inFM2x3, inFM3x4); + float3x4 r16 = mul(inFM3x2, inFM2x4); +} diff --git a/Test/hlsl.switch.frag b/Test/hlsl.switch.frag new file mode 100644 index 00000000..88239c2b --- /dev/null +++ b/Test/hlsl.switch.frag @@ -0,0 +1,55 @@ +float4 PixelShaderFunction(float4 input, int c, int d) : COLOR0 +{ + switch(c) + { + } + + switch(c) + { + default: + } + + switch (c) { + case 1: + ++input; + break; + case 2: + --input; + break; + } + + switch (c) { + case 1: + ++input; + break; + case 2: + switch (d) { + case 2: + input += 2.0; + break; + case 3: + input += 3.0; + break; + } + break; + default: + input += 4.0; + } + + switch (c) { + case 1: + } + + switch (c) { + case 1: + case 2: + case 3: + ++input; + break; + case 4: + case 5: + --input; + } + + return input; +} diff --git a/Test/hlsl.templatetypes.frag b/Test/hlsl.templatetypes.frag new file mode 100644 index 00000000..379120d9 --- /dev/null +++ b/Test/hlsl.templatetypes.frag @@ -0,0 +1,47 @@ + +float PixelShaderFunction() +{ + vector r00 = float4(1,2,3,4); // vector means float4 + float4 r01 = vector(2,3,4,5); // vector means float4 + + vector r12 = bool1(false); + vector r13 = int1(1); + vector r14 = float1(1); + vector r15 = double1(1); + vector r16 = uint1(1); + + vector r20 = bool2(false, true); + vector r21 = int2(1,2); + vector r22 = float2(1,2); + vector r23 = double2(1,2); + vector r24 = uint2(1,2); + + vector r30 = bool3(false, true, true); + vector r31 = int3(1,2,3); + vector r32 = float3(1,2,3); + vector r33 = double3(1,2,3); + vector r34 = uint3(1,2,3); + + vector r40 = bool4(false, true, true, false); + vector r41 = int4(1,2,3,4); + vector r42 = float4(1,2,3,4); + vector r43 = double4(1,2,3,4); + vector r44 = uint4(1,2,3,4); + + matrix r50 = float4x4(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); // matrix means float4x4 + float4x4 r51 = matrix(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); // matrix means float4x4 + + // matrix r60 = bool2x3(false, true, false, true, false, true); // TODO: + matrix r61 = float2x3(1,2,3,4,5,6); + matrix r62 = float3x2(1,2,3,4,5,6); + // matrix r63 = float4x1(1,2,3,4); // TODO: + // matrix r64 = float1x4(1,2,3,4); // TODO: + matrix r65 = float4x2(1,2,3,4,5,6,7,8); + matrix r66 = float4x3(1,2,3,4,5,6,7,8,9,10,11,12); + + // TODO: bool mats + // TODO: int mats + + return 0.0; +} + diff --git a/Test/hlsl.templatetypes.negative.frag b/Test/hlsl.templatetypes.negative.frag new file mode 100644 index 00000000..aa54f3c6 --- /dev/null +++ b/Test/hlsl.templatetypes.negative.frag @@ -0,0 +1,23 @@ + +float PixelShaderFunction() +{ + // TODO: All of the below should fail, although presently the first failure + // aborts compilation and the rest are skipped. Having a separate test for + // each would be cumbersome. + + vector r00; // cannot declare vectors of voids + matrix r01; // cannot declare matrices of voids + + vector r02; // too many parameters to vector + matrix r03; // not enough parameters to matrix + + int three = 3; + vector r04; // size must be a literal constant integer + matrix r05; // size must be a literal constant integer + + vector, 3> r06; // type must be a simple scalar + vector r07; // type must be a simple scalar + + return 0.0; +} + diff --git a/Test/hlsl.typedef.frag b/Test/hlsl.typedef.frag new file mode 100644 index 00000000..b09785e6 --- /dev/null +++ b/Test/hlsl.typedef.frag @@ -0,0 +1,11 @@ +typedef float4 myVec4; + +float4 ShaderFunction(float4 input, int ii) : COLOR0 +{ + typedef int myInt; + myVec4 a1 = myVec4(1.0); + myInt i = 2; + typedef myInt myInt2; + myInt2 j = ii; + return input * a1 + myVec4(i + j); +} diff --git a/Test/maxClipDistances.vert b/Test/maxClipDistances.vert new file mode 100644 index 00000000..62ddfeb9 --- /dev/null +++ b/Test/maxClipDistances.vert @@ -0,0 +1,7 @@ +#version 130 + +out float gl_ClipDistance[8]; // OK, 8 is gl_MaxClipDistances + +void main() +{ +} diff --git a/Test/runtests b/Test/runtests index d54fb580..ae7ed450 100755 --- a/Test/runtests +++ b/Test/runtests @@ -6,27 +6,6 @@ EXE=../build/install/bin/glslangValidator HASERROR=0 mkdir -p localResults -# -# configuration file tests -# -echo running configuration file test -$EXE -c > $TARGETDIR/test.conf -diff -b $BASEDIR/test.conf $TARGETDIR/test.conf || HASERROR=1 -$EXE -i -l $TARGETDIR/test.conf specExamples.vert > $TARGETDIR/specExamples.vert.out -diff -b $BASEDIR/specExamples.vert.out $TARGETDIR || HASERROR=1 -$EXE -l 100Limits.vert 100.conf > $TARGETDIR/100LimitsConf.vert.out -diff -b $BASEDIR/100LimitsConf.vert.out $TARGETDIR/100LimitsConf.vert.out || HASERROR=1 - -# -# isolated compilation tests -# -while read t; do - echo Running $t... - b=`basename $t` - $EXE -i -l $t > $TARGETDIR/$b.out - diff -b $BASEDIR/$b.out $TARGETDIR/$b.out || HASERROR=1 -done < testlist - if [ -a localtestlist ] then while read t; do @@ -37,87 +16,21 @@ if [ -a localtestlist ] done < localtestlist fi -# -# SPIR-V code generation tests -# -while read t; do - case $t in - \#*) - # Skip comment lines in the test list file. - ;; - *) - echo Running SPIR-V $t... - b=`basename $t` - $EXE -H $t > $TARGETDIR/$b.out - diff -b $BASEDIR/$b.out $TARGETDIR/$b.out || HASERROR=1 - ;; - esac -done < test-spirv-list rm -f comp.spv frag.spv geom.spv tesc.spv tese.spv vert.spv -# -# HLSL -> SPIR-V code generation tests -# -while read t; do - case $t in - \#*) - # Skip comment lines in the test list file. - ;; - *) - echo Running HLSL-to-SPIR-V $t... - b=`basename $t` - $EXE -D -e PixelShaderFunction -H -i $t > $TARGETDIR/$b.out - diff -b $BASEDIR/$b.out $TARGETDIR/$b.out || HASERROR=1 - ;; - esac -done < test-hlsl-spirv-list -rm -f comp.spv frag.spv geom.spv tesc.spv tese.spv vert.spv - -# -# Preprocessor tests -# -while read t; do - echo Running Preprocessor $t... - b=`basename $t` - $EXE -E $t > $TARGETDIR/$b.out 2> $TARGETDIR/$b.err - diff -b $BASEDIR/$b.out $TARGETDIR/$b.out || HASERROR=1 - diff -b $BASEDIR/$b.err $TARGETDIR/$b.err || HASERROR=1 -done < test-preprocessor-list - -# -# grouped shaders for bulk (faster) tests -# -function runBulkTest { - echo Running $*... - $EXE -i -l -t $* > $TARGETDIR/$1.out - diff -b $BASEDIR/$1.out $TARGETDIR/$1.out || HASERROR=1 -} - -runBulkTest mains1.frag mains2.frag noMain1.geom noMain2.geom -runBulkTest noMain.vert mains.frag -runBulkTest link1.frag link2.frag link3.frag -runBulkTest es-link1.frag es-link2.frag -runBulkTest recurse1.vert recurse1.frag recurse2.frag -runBulkTest 300link.frag -runBulkTest 300link2.frag -runBulkTest 300link3.frag -runBulkTest empty.frag empty2.frag empty3.frag -runBulkTest 150.tesc 150.tese 400.tesc 400.tese 410.tesc 420.tesc 420.tese -runBulkTest max_vertices_0.geom - # # reflection tests # echo Running reflection... -$EXE -l -q reflection.vert > $TARGETDIR/reflection.vert.out +$EXE -l -q -C reflection.vert > $TARGETDIR/reflection.vert.out diff -b $BASEDIR/reflection.vert.out $TARGETDIR/reflection.vert.out || HASERROR=1 # # multi-threaded test # echo Comparing single thread to multithread for all tests in current directory... -$EXE -i *.vert *.geom *.frag *.tes* *.comp > singleThread.out -$EXE -i *.vert *.geom *.frag *.tes* *.comp -t > multiThread.out +$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 if [ $HASERROR -eq 0 ] diff --git a/Test/spv.430.frag b/Test/spv.430.frag new file mode 100644 index 00000000..e547f610 --- /dev/null +++ b/Test/spv.430.frag @@ -0,0 +1,10 @@ +#version 430 core + +out vec4 color; + +void main() +{ + color = vec4(1.0); + color *= gl_Layer; + color *= gl_ViewportIndex; +} diff --git a/Test/spv.450.tesc b/Test/spv.450.tesc new file mode 100644 index 00000000..0f8ec5cb --- /dev/null +++ b/Test/spv.450.tesc @@ -0,0 +1,20 @@ +#version 450 core + +layout(vertices = 4) out; + +patch out vec4 patchOut; + +struct S { + float sMem1; // should not see a patch decoration + float sMem2; // should not see a patch decoration +}; + +layout(location = 12) patch out TheBlock { + highp float bMem1; // should not see a location decoration + highp float bMem2; + S s; // should see a patch decoration +} tcBlock[2]; + +void main() +{ +} diff --git a/Test/spv.atomic.comp b/Test/spv.atomic.comp index dc1fe6e8..8ab846e4 100644 --- a/Test/spv.atomic.comp +++ b/Test/spv.atomic.comp @@ -1,4 +1,4 @@ -#version 310 es +#version 450 @@ -22,6 +22,7 @@ void main() func(counter); uint val = atomicCounter(countArr[2]); atomicCounterDecrement(counter); + atomicCounterIncrement(counter); } shared int atomi; diff --git a/Test/spv.glFragColor.frag b/Test/spv.glFragColor.frag new file mode 100644 index 00000000..12dbcb22 --- /dev/null +++ b/Test/spv.glFragColor.frag @@ -0,0 +1,6 @@ +#version 330 + +void main() +{ + gl_FragColor = vec4(1.0); +} diff --git a/Test/spv.specConst.vert b/Test/spv.specConst.vert new file mode 100644 index 00000000..3ea24980 --- /dev/null +++ b/Test/spv.specConst.vert @@ -0,0 +1,8 @@ +#version 450 + +layout(constant_id = 11) const int a = 8; + +void main() +{ + gl_Position = vec4(1.0) / a; +} diff --git a/Test/test-hlsl-spirv-list b/Test/test-hlsl-spirv-list deleted file mode 100644 index d98a3cb4..00000000 --- a/Test/test-hlsl-spirv-list +++ /dev/null @@ -1,4 +0,0 @@ -# Test looping constructs. -# No tests yet for making sure break and continue from a nested loop -# goes to the innermost target. -hlsl.frag diff --git a/Test/test-preprocessor-list b/Test/test-preprocessor-list deleted file mode 100644 index bd7e963b..00000000 --- a/Test/test-preprocessor-list +++ /dev/null @@ -1,16 +0,0 @@ -preprocessor.cpp_style_line_directive.vert -preprocessor.cpp_style___FILE__.vert -preprocessor.edge_cases.vert -preprocessor.errors.vert -preprocessor.extensions.vert -preprocessor.function_macro.vert -preprocessor.include.enabled.vert -preprocessor.include.disabled.vert -preprocessor.line.vert -preprocessor.line.frag -preprocessor.pragma.vert -preprocessor.simple.vert -preprocessor.success_if_parse_would_fail.vert -preprocessor.defined.vert -preprocessor.many.endif.vert -preprocessor.eof_missing.vert diff --git a/Test/test-spirv-list b/Test/test-spirv-list deleted file mode 100644 index 03f4432e..00000000 --- a/Test/test-spirv-list +++ /dev/null @@ -1,115 +0,0 @@ -# Test looping constructs. -# No tests yet for making sure break and continue from a nested loop -# goes to the innermost target. -spv.do-simple.vert -spv.do-while-continue-break.vert -spv.for-complex-condition.vert -spv.for-continue-break.vert -spv.for-simple.vert -spv.for-notest.vert -spv.for-nobody.vert -spv.while-continue-break.vert -spv.while-simple.vert -# vulkan-specific tests -spv.set.vert -spv.double.comp -spv.100ops.frag -spv.130.frag -spv.140.frag -spv.150.geom -spv.150.vert -spv.300BuiltIns.vert -spv.300layout.frag -spv.300layout.vert -spv.300layoutp.vert -spv.310.comp -spv.330.geom -spv.400.frag -spv.400.tesc -spv.400.tese -spv.420.geom -spv.430.vert -spv.accessChain.frag -spv.aggOps.frag -spv.always-discard.frag -spv.always-discard2.frag -spv.bitCast.frag -spv.bool.vert -spv.boolInBlock.frag -spv.branch-return.vert -spv.conditionalDiscard.frag -spv.conversion.frag -spv.dataOut.frag -spv.dataOutIndirect.frag -spv.dataOutIndirect.vert -spv.deepRvalue.frag -spv.depthOut.frag -spv.discard-dce.frag -spv.doWhileLoop.frag -spv.earlyReturnDiscard.frag -spv.flowControl.frag -spv.forLoop.frag -spv.forwardFun.frag -spv.functionCall.frag -spv.functionSemantics.frag -spv.interpOps.frag -spv.int64.frag -spv.layoutNested.vert -spv.length.frag -spv.localAggregates.frag -spv.loops.frag -spv.loopsArtificial.frag -spv.matFun.vert -spv.matrix.frag -spv.matrix2.frag -spv.memoryQualifier.frag -spv.merge-unreachable.frag -spv.newTexture.frag -spv.noDeadDecorations.vert -spv.nonSquare.vert -spv.Operations.frag -spv.intOps.vert -spv.precision.frag -spv.prepost.frag -spv.qualifiers.vert -spv.shaderBallot.comp -spv.shaderGroupVote.comp -spv.shiftOps.frag -spv.simpleFunctionCall.frag -spv.simpleMat.vert -spv.sparseTexture.frag -spv.sparseTextureClamp.frag -spv.structAssignment.frag -spv.structDeref.frag -spv.structure.frag -spv.switch.frag -spv.swizzle.frag -spv.test.frag -spv.test.vert -spv.texture.frag -spv.texture.vert -spv.image.frag -spv.types.frag -spv.uint.frag -spv.uniformArray.frag -spv.variableArrayIndex.frag -spv.varyingArray.frag -spv.varyingArrayIndirect.frag -spv.voidFunction.frag -spv.whileLoop.frag -spv.AofA.frag -spv.queryL.frag -spv.separate.frag -spv.shortCircuit.frag -spv.pushConstant.vert -spv.subpass.frag -spv.specConstant.vert -spv.specConstant.comp -spv.specConstantComposite.vert -spv.specConstantOperations.vert -spv.precise.tese -spv.precise.tesc -# GLSL-level semantics -vulkan.frag -vulkan.vert -vulkan.comp diff --git a/Test/testlist b/Test/testlist deleted file mode 100644 index dd682b2d..00000000 --- a/Test/testlist +++ /dev/null @@ -1,134 +0,0 @@ -sample.frag -sample.vert -decls.frag -specExamples.frag -specExamples.vert -versionsClean.frag -versionsClean.vert -versionsErrors.frag -versionsErrors.vert -100.frag -120.vert -120.frag -130.vert -130.frag -140.vert -140.frag -150.vert -150.geom -150.frag -precision.frag -precision.vert -nonSquare.vert -matrixError.vert -cppSimple.vert -cppIndent.vert -cppNest.vert -cppComplexExpr.vert -badChars.frag -pointCoord.frag -array.frag -array100.frag -comment.frag -300.vert -300.frag -300BuiltIns.frag -300layout.vert -300layout.frag -300operations.frag -300block.frag -310.comp -310.vert -310.geom -310.frag -310.tesc -310.tese -310implicitSizeArrayError.vert -310AofA.vert -330.frag -330comp.frag -constErrors.frag -constFold.frag -errors.frag -forwardRef.frag -uint.frag -switch.frag -tokenLength.vert -100Limits.vert -100scope.vert -110scope.vert -300scope.vert -400.frag -420.frag -420.vert -420.geom -420_size_gl_in.geom -430scope.vert -lineContinuation100.vert -lineContinuation.vert -numeral.frag -400.geom -400.tesc -400.tese -410.tesc -420.tesc -420.tese -410.geom -430.vert -430.comp -430AofA.frag -440.vert -440.frag -450.vert -450.geom -450.tesc -450.tese -450.frag -450.comp -dce.frag -atomic_uint.frag -aggOps.frag -always-discard.frag -always-discard2.frag -conditionalDiscard.frag -conversion.frag -dataOut.frag -dataOutIndirect.frag -deepRvalue.frag -depthOut.frag -discard-dce.frag -doWhileLoop.frag -earlyReturnDiscard.frag -flowControl.frag -forLoop.frag -functionCall.frag -functionSemantics.frag -length.frag -localAggregates.frag -loops.frag -loopsArtificial.frag -matrix.frag -matrix2.frag -newTexture.frag -Operations.frag -prepost.frag -simpleFunctionCall.frag -structAssignment.frag -structDeref.frag -structure.frag -swizzle.frag -syntaxError.frag -test.frag -texture.frag -types.frag -uniformArray.frag -variableArrayIndex.frag -varyingArray.frag -varyingArrayIndirect.frag -voidFunction.frag -whileLoop.frag -nonVulkan.frag -negativeArraySize.comp -spv.atomic.comp -precise.tesc -precise_struct_block.vert diff --git a/glslang/Include/Types.h b/glslang/Include/Types.h index e37c77cd..cdf82007 100644 --- a/glslang/Include/Types.h +++ b/glslang/Include/Types.h @@ -1553,6 +1553,13 @@ public: if (structure) { s.append("{"); for (size_t i = 0; i < structure->size(); ++i) { + if (s.size() > 3 * GlslangMaxTypeLength) { + // If we are getting too long, cut it short, + // just need to draw the line somewhere, as there is no limit to + // how large a struct/block type can get. + s.append("..."); + break; + } if (! (*structure)[i].type->hiddenMember()) { s.append((*structure)[i].type->getCompleteString()); s.append(" "); diff --git a/glslang/Include/intermediate.h b/glslang/Include/intermediate.h index 1dee257f..d9982a3a 100644 --- a/glslang/Include/intermediate.h +++ b/glslang/Include/intermediate.h @@ -523,6 +523,8 @@ enum TOperator { EOpF32tof16, // HLSL conversion: half of a PackHalf2x16 EOpF16tof32, // HLSL conversion: half of an UnpackHalf2x16 EOpLit, // HLSL lighting coefficient vector + EOpTextureBias, // HLSL texture bias: will be lowered to EOpTexture + EOpAsDouble, // slightly different from EOpUint64BitsToDouble }; class TIntermTraverser; @@ -577,7 +579,10 @@ public: virtual const glslang::TIntermSymbol* getAsSymbolNode() const { return 0; } virtual const glslang::TIntermBranch* getAsBranchNode() const { return 0; } virtual ~TIntermNode() { } + protected: + TIntermNode(const TIntermNode&); + TIntermNode& operator=(const TIntermNode&); glslang::TSourceLoc loc; }; @@ -619,6 +624,7 @@ public: TString getCompleteString() const { return type.getCompleteString(); } protected: + TIntermTyped& operator=(const TIntermTyped&); TType type; }; @@ -700,6 +706,7 @@ public: const TConstUnionArray& getConstArray() const { return constArray; } void setConstSubtree(TIntermTyped* subtree) { constSubtree = subtree; } TIntermTyped* getConstSubtree() const { return constSubtree; } + protected: int id; // the unique id of the symbol this node represents TString name; // the name of the symbol this node represents @@ -719,7 +726,10 @@ public: void setLiteral() { literal = true; } void setExpression() { literal = false; } bool isLiteral() const { return literal; } + protected: + TIntermConstantUnion& operator=(const TIntermConstantUnion&); + const TConstUnionArray constArray; bool literal; // true if node represents a literal in the source code }; diff --git a/glslang/MachineIndependent/Constant.cpp b/glslang/MachineIndependent/Constant.cpp index 03033bce..4adfd470 100644 --- a/glslang/MachineIndependent/Constant.cpp +++ b/glslang/MachineIndependent/Constant.cpp @@ -399,6 +399,27 @@ TIntermTyped* TIntermConstantUnion::fold(TOperator op, const TType& returnType) break; } + case EOpAny: + { + bool result = false; + for (int i = 0; i < objectSize; i++) { + if (unionArray[i].getBConst()) + result = true; + } + newConstArray[0].setBConst(result); + break; + } + case EOpAll: + { + bool result = true; + for (int i = 0; i < objectSize; i++) { + if (! unionArray[i].getBConst()) + result = false; + } + newConstArray[0].setBConst(result); + break; + } + // TODO: 3.0 Functionality: unary constant folding: the rest of the ops have to be fleshed out case EOpPackSnorm2x16: @@ -412,11 +433,8 @@ TIntermTyped* TIntermConstantUnion::fold(TOperator op, const TType& returnType) case EOpDeterminant: case EOpMatrixInverse: case EOpTranspose: - - case EOpAny: - case EOpAll: return 0; - + default: assert(componentWise); break; diff --git a/glslang/MachineIndependent/Initialize.cpp b/glslang/MachineIndependent/Initialize.cpp index e8327c45..871e7884 100644 --- a/glslang/MachineIndependent/Initialize.cpp +++ b/glslang/MachineIndependent/Initialize.cpp @@ -948,9 +948,9 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV (profile != EEsProfile && version >= 420)) { commonBuiltins.append( "highp uint packSnorm2x16(vec2);" - "highp vec2 unpackSnorm2x16(highp uint);" + " vec2 unpackSnorm2x16(highp uint);" "highp uint packHalf2x16(mediump vec2);" - "mediump vec2 unpackHalf2x16(highp uint);" + " vec2 unpackHalf2x16(highp uint);" "\n"); } @@ -958,9 +958,9 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV (profile != EEsProfile && version >= 400)) { commonBuiltins.append( "highp uint packSnorm4x8 (mediump vec4);" - "mediump vec4 unpackSnorm4x8(highp uint);" + " vec4 unpackSnorm4x8(highp uint);" "highp uint packUnorm4x8 (mediump vec4);" - "mediump vec4 unpackUnorm4x8(highp uint);" + " vec4 unpackUnorm4x8(highp uint);" "\n"); } @@ -1259,7 +1259,6 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV } if (spvVersion.vulkan == 0) { - // gl_spirv TODO // // Atomic counter functions. // @@ -1298,15 +1297,15 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "uvec3 bitfieldInsert(uvec3 base, uvec3, int, int);" "uvec4 bitfieldInsert(uvec4 base, uvec4, int, int);" - "lowp int findLSB( int);" - "lowp ivec2 findLSB(ivec2);" - "lowp ivec3 findLSB(ivec3);" - "lowp ivec4 findLSB(ivec4);" + " int findLSB( int);" + "ivec2 findLSB(ivec2);" + "ivec3 findLSB(ivec3);" + "ivec4 findLSB(ivec4);" - "lowp int findLSB( uint);" - "lowp ivec2 findLSB(uvec2);" - "lowp ivec3 findLSB(uvec3);" - "lowp ivec4 findLSB(uvec4);" + " int findLSB( uint);" + "ivec2 findLSB(uvec2);" + "ivec3 findLSB(uvec3);" + "ivec4 findLSB(uvec4);" "\n"); } @@ -1398,25 +1397,25 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "highp uvec3 bitfieldReverse(highp uvec3);" "highp uvec4 bitfieldReverse(highp uvec4);" - "lowp int bitCount( int);" - "lowp ivec2 bitCount(ivec2);" - "lowp ivec3 bitCount(ivec3);" - "lowp ivec4 bitCount(ivec4);" + " int bitCount( int);" + "ivec2 bitCount(ivec2);" + "ivec3 bitCount(ivec3);" + "ivec4 bitCount(ivec4);" - "lowp int bitCount( uint);" - "lowp ivec2 bitCount(uvec2);" - "lowp ivec3 bitCount(uvec3);" - "lowp ivec4 bitCount(uvec4);" + " int bitCount( uint);" + "ivec2 bitCount(uvec2);" + "ivec3 bitCount(uvec3);" + "ivec4 bitCount(uvec4);" - "lowp int findMSB(highp int);" - "lowp ivec2 findMSB(highp ivec2);" - "lowp ivec3 findMSB(highp ivec3);" - "lowp ivec4 findMSB(highp ivec4);" + " int findMSB(highp int);" + "ivec2 findMSB(highp ivec2);" + "ivec3 findMSB(highp ivec3);" + "ivec4 findMSB(highp ivec4);" - "lowp int findMSB(highp uint);" - "lowp ivec2 findMSB(highp uvec2);" - "lowp ivec3 findMSB(highp uvec3);" - "lowp ivec4 findMSB(highp uvec4);" + " int findMSB(highp uint);" + "ivec2 findMSB(highp uvec2);" + "ivec3 findMSB(highp uvec3);" + "ivec4 findMSB(highp uvec4);" "\n"); } @@ -1986,17 +1985,14 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "\n"); } if (version >= 130 && spvVersion.vulkan == 0) - // gl_spirv TODO stageBuiltins[EShLangVertex].append( "int gl_VertexID;" // needs qualifier fixed later ); if (version >= 140 && spvVersion.vulkan == 0) - // gl_spirv TODO stageBuiltins[EShLangVertex].append( "int gl_InstanceID;" // needs qualifier fixed later ); if (spvVersion.vulkan >= 100 && version >= 140) - // gl_spirv TODO stageBuiltins[EShLangVertex].append( "in int gl_VertexIndex;" "in int gl_InstanceIndex;" @@ -2017,13 +2013,11 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV ); } else { if (spvVersion.vulkan == 0) - // gl_spirv TODO stageBuiltins[EShLangVertex].append( "in highp int gl_VertexID;" // needs qualifier fixed later "in highp int gl_InstanceID;" // needs qualifier fixed later ); if (spvVersion.vulkan >= 100) - // gl_spirv TODO stageBuiltins[EShLangVertex].append( "in highp int gl_VertexIndex;" "in highp int gl_InstanceIndex;" @@ -3634,13 +3628,14 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion } if (spvVersion.vulkan == 0) { - // gl_spirv TODO SpecialQualifier("gl_VertexID", EvqVertexId, EbvVertexId, symbolTable); SpecialQualifier("gl_InstanceID", EvqInstanceId, EbvInstanceId, symbolTable); } - BuiltInVariable("gl_VertexIndex", EbvVertexIndex, symbolTable); - BuiltInVariable("gl_InstanceIndex", EbvInstanceIndex, symbolTable); + if (spvVersion.vulkan >= 100) { + BuiltInVariable("gl_VertexIndex", EbvVertexIndex, symbolTable); + BuiltInVariable("gl_InstanceIndex", EbvInstanceIndex, symbolTable); + } // Fall through diff --git a/glslang/MachineIndependent/ParseHelper.cpp b/glslang/MachineIndependent/ParseHelper.cpp index 8d7ecdec..bd4b3c95 100644 --- a/glslang/MachineIndependent/ParseHelper.cpp +++ b/glslang/MachineIndependent/ParseHelper.cpp @@ -377,6 +377,9 @@ void C_DECL TParseContext::error(const TSourceLoc& loc, const char* szReason, co 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, @@ -397,6 +400,9 @@ void C_DECL TParseContext::ppError(const TSourceLoc& loc, const char* szReason, 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, @@ -1199,6 +1205,28 @@ TIntermTyped* TParseContext::handleFunctionCall(const TSourceLoc& loc, TFunction return result; } +TIntermNode* TParseContext::handleReturnValue(const TSourceLoc& loc, TIntermTyped* value) +{ + functionReturnsValue = true; + if (currentFunctionType->getBasicType() == EbtVoid) { + error(loc, "void function cannot return a value", "return", ""); + return intermediate.addBranch(EOpReturn, loc); + } else if (*currentFunctionType != value->getType()) { + TIntermTyped* converted = intermediate.addConversion(EOpReturn, *currentFunctionType, value); + if (converted) { + if (*currentFunctionType != converted->getType()) + error(loc, "cannot convert return value to function return type", "return", ""); + if (version < 420) + warn(loc, "type conversion on return values was not explicitly allowed until version 420", "return", ""); + return intermediate.addBranch(EOpReturn, converted, loc); + } else { + error(loc, "type does not match, or is not convertible to, the function's return type", "return", ""); + return intermediate.addBranch(EOpReturn, value, loc); + } + } else + return intermediate.addBranch(EOpReturn, value, loc); +} + // See if the operation is being done in an illegal location. void TParseContext::checkLocation(const TSourceLoc& loc, TOperator op) { @@ -1908,7 +1936,13 @@ void TParseContext::variableCheck(TIntermTyped*& nodePtr) return; if (symbol->getType().getBasicType() == EbtVoid) { - error(symbol->getLoc(), "undeclared identifier", symbol->getName().c_str(), ""); + const char *extraInfoFormat = ""; + if (spvVersion.vulkan != 0 && symbol->getName() == "gl_VertexID") { + extraInfoFormat = "(Did you mean gl_VertexIndex?)"; + } else if (spvVersion.vulkan != 0 && symbol->getName() == "gl_InstanceID") { + extraInfoFormat = "(Did you mean gl_InstanceIndex?)"; + } + error(symbol->getLoc(), "undeclared identifier", symbol->getName().c_str(), extraInfoFormat); // Add to symbol table to prevent future error messages on the same name if (symbol->getName().size() > 0) { @@ -3824,7 +3858,7 @@ void TParseContext::arrayLimitCheck(const TSourceLoc& loc, const TString& identi limitCheck(loc, size, "gl_MaxCullDistances", "gl_CullDistance array size"); } -// See if the provided value is less than the symbol indicated by limit, +// See if the provided value is less than or equal to the symbol indicated by limit, // which should be a constant in the symbol table. void TParseContext::limitCheck(const TSourceLoc& loc, int value, const char* limit, const char* feature) { @@ -3832,8 +3866,8 @@ void TParseContext::limitCheck(const TSourceLoc& loc, int value, const char* lim assert(symbol->getAsVariable()); const TConstUnionArray& constArray = symbol->getAsVariable()->getConstArray(); assert(! constArray.empty()); - if (value >= constArray[0].getIConst()) - error(loc, "must be less than", feature, "%s (%d)", limit, constArray[0].getIConst()); + if (value > constArray[0].getIConst()) + error(loc, "must be less than or equal to", feature, "%s (%d)", limit, constArray[0].getIConst()); } // @@ -4081,7 +4115,10 @@ void TParseContext::setLayoutQualifier(const TSourceLoc& loc, TPublicType& publi std::transform(id.begin(), id.end(), id.begin(), ::tolower); if (id == "offset") { - const char* feature = "uniform offset"; + // "offset" can be for either + // - uniform offsets + // - atomic_uint offsets + const char* feature = "offset"; requireProfile(loc, EEsProfile | ECoreProfile | ECompatibilityProfile, feature); const char* exts[2] = { E_GL_ARB_enhanced_layouts, E_GL_ARB_shader_atomic_counters }; profileRequires(loc, ECoreProfile | ECompatibilityProfile, 420, 2, exts, feature); @@ -4112,6 +4149,8 @@ void TParseContext::setLayoutQualifier(const TSourceLoc& loc, TPublicType& publi error(loc, "set is too large", id.c_str(), ""); else publicType.qualifier.layoutSet = value; + if (value != 0) + requireVulkan(loc, "descriptor set"); return; } else if (id == "binding") { profileRequires(loc, ~EEsProfile, 420, E_GL_ARB_shading_language_420pack, "binding"); diff --git a/glslang/MachineIndependent/ParseHelper.h b/glslang/MachineIndependent/ParseHelper.h index 67815bbb..2f5e0953 100644 --- a/glslang/MachineIndependent/ParseHelper.h +++ b/glslang/MachineIndependent/ParseHelper.h @@ -197,6 +197,7 @@ public: TFunction* handleFunctionDeclarator(const TSourceLoc&, TFunction& function, bool prototype); TIntermAggregate* handleFunctionDefinition(const TSourceLoc&, TFunction&); TIntermTyped* handleFunctionCall(const TSourceLoc&, TFunction*, TIntermNode*); + TIntermNode* handleReturnValue(const TSourceLoc&, TIntermTyped*); void checkLocation(const TSourceLoc&, TOperator); TIntermTyped* handleLengthMethod(const TSourceLoc&, TFunction*, TIntermNode*); void addInputArgumentConversions(const TFunction&, TIntermNode*&) const; diff --git a/glslang/MachineIndependent/Scan.h b/glslang/MachineIndependent/Scan.h index 1cc437cb..4282cd59 100644 --- a/glslang/MachineIndependent/Scan.h +++ b/glslang/MachineIndependent/Scan.h @@ -40,7 +40,7 @@ namespace glslang { -// Use a global end-of-input character, so no tranlation is needed across +// Use a global end-of-input character, so no translation is needed across // layers of encapsulation. Characters are all 8 bit, and positive, so there is // no aliasing of character 255 onto -1, for example. const int EndOfInput = -1; @@ -82,7 +82,8 @@ public: int get() { int ret = peek(); - if (ret == EndOfInput) return ret; + if (ret == EndOfInput) + return ret; ++loc[currentSource].column; ++logicalSourceLoc.column; if (ret == '\n') { @@ -123,7 +124,8 @@ public: void unget() { // Do not roll back once we've reached the end of the file. - if (endOfFileReached) return; + if (endOfFileReached) + return; if (currentChar > 0) { --currentChar; @@ -173,7 +175,7 @@ public: loc[getLastValidSourceIndex()].name = filename; } - void setFile(const char* filename, size_t i) + void setFile(const char* filename, int i) { if (i == getLastValidSourceIndex()) { logicalSourceLoc.name = filename; @@ -196,6 +198,12 @@ public: loc[getLastValidSourceIndex()].column = col; } + void setEndOfInput() + { + endOfFileReached = true; + currentSource = numSources; + } + const TSourceLoc& getSourceLoc() const { if (singleLogical) { @@ -255,7 +263,7 @@ protected: bool singleLogical; // treats the strings as a single logical string. // locations will be reported from the first string. - // set to true once peak() returns EndOfFile, so that we won't roll back + // Set to true once peek() returns EndOfFile, so that we won't roll back // once we've reached EndOfFile. bool endOfFileReached; }; diff --git a/glslang/MachineIndependent/ShaderLang.cpp b/glslang/MachineIndependent/ShaderLang.cpp index 9766fa33..dccc1f0b 100644 --- a/glslang/MachineIndependent/ShaderLang.cpp +++ b/glslang/MachineIndependent/ShaderLang.cpp @@ -81,42 +81,70 @@ TBuiltInParseables* CreateBuiltInParseables(TInfoSink& infoSink, EShSource sourc // Local mapping functions for making arrays of symbol tables.... +const int VersionCount = 15; // index range in MapVersionToIndex + int MapVersionToIndex(int version) { - switch (version) { - case 100: return 0; - case 110: return 1; - case 120: return 2; - case 130: return 3; - case 140: return 4; - case 150: return 5; - case 300: return 6; - case 330: return 7; - case 400: return 8; - case 410: return 9; - case 420: return 10; - case 430: return 11; - case 440: return 12; - case 310: return 13; - case 450: return 14; - default: // | - return 0; // | - } // | -} // V -const int VersionCount = 15; // number of case statements above + int index = 0; + + switch (version) { + case 100: index = 0; break; + case 110: index = 1; break; + case 120: index = 2; break; + case 130: index = 3; break; + case 140: index = 4; break; + case 150: index = 5; break; + case 300: index = 6; break; + case 330: index = 7; break; + case 400: index = 8; break; + case 410: index = 9; break; + case 420: index = 10; break; + case 430: index = 11; break; + case 440: index = 12; break; + case 310: index = 13; break; + case 450: index = 14; break; + default: break; + } + + assert(index < VersionCount); + + return index; +} + +const int SpvVersionCount = 3; // index range in MapSpvVersionToIndex + +int MapSpvVersionToIndex(const SpvVersion& spvVersion) +{ + int index = 0; + + if (spvVersion.openGl > 0) + index = 1; + else if (spvVersion.vulkan > 0) + index = 2; + + assert(index < SpvVersionCount); + + return index; +} + +const int ProfileCount = 4; // index range in MapProfileToIndex int MapProfileToIndex(EProfile profile) { + int index = 0; + switch (profile) { - case ENoProfile: return 0; - case ECoreProfile: return 1; - case ECompatibilityProfile: return 2; - case EEsProfile: return 3; - default: // | - return 0; // | - } // | -} // V -const int ProfileCount = 4; // number of case statements above + case ENoProfile: index = 0; break; + case ECoreProfile: index = 1; break; + case ECompatibilityProfile: index = 2; break; + case EEsProfile: index = 3; break; + default: break; + } + + assert(index < ProfileCount); + + return index; +} // only one of these needed for non-ES; ES needs 2 for different precision defaults of built-ins enum EPrecisionClass { @@ -133,8 +161,8 @@ enum EPrecisionClass { // Each has a different set of built-ins, and we want to preserve that from // compile to compile. // -TSymbolTable* CommonSymbolTable[VersionCount][ProfileCount][EPcCount] = {}; -TSymbolTable* SharedSymbolTables[VersionCount][ProfileCount][EShLangCount] = {}; +TSymbolTable* CommonSymbolTable[VersionCount][SpvVersionCount][ProfileCount][EPcCount] = {}; +TSymbolTable* SharedSymbolTables[VersionCount][SpvVersionCount][ProfileCount][EShLangCount] = {}; TPoolAllocator* PerProcessGPA = 0; @@ -275,8 +303,9 @@ void SetupBuiltinSymbolTable(int version, EProfile profile, const SpvVersion& sp // See if it's already been done for this version/profile combination int versionIndex = MapVersionToIndex(version); + int spvVersionIndex = MapSpvVersionToIndex(spvVersion); int profileIndex = MapProfileToIndex(profile); - if (CommonSymbolTable[versionIndex][profileIndex][EPcGeneral]) { + if (CommonSymbolTable[versionIndex][spvVersionIndex][profileIndex][EPcGeneral]) { glslang::ReleaseGlobalLock(); return; @@ -304,17 +333,18 @@ void SetupBuiltinSymbolTable(int version, EProfile profile, const SpvVersion& sp // Copy the local symbol tables from the new pool to the global tables using the process-global pool for (int precClass = 0; precClass < EPcCount; ++precClass) { if (! commonTable[precClass]->isEmpty()) { - CommonSymbolTable[versionIndex][profileIndex][precClass] = new TSymbolTable; - CommonSymbolTable[versionIndex][profileIndex][precClass]->copyTable(*commonTable[precClass]); - CommonSymbolTable[versionIndex][profileIndex][precClass]->readOnly(); + CommonSymbolTable[versionIndex][spvVersionIndex][profileIndex][precClass] = new TSymbolTable; + CommonSymbolTable[versionIndex][spvVersionIndex][profileIndex][precClass]->copyTable(*commonTable[precClass]); + CommonSymbolTable[versionIndex][spvVersionIndex][profileIndex][precClass]->readOnly(); } } for (int stage = 0; stage < EShLangCount; ++stage) { if (! stageTables[stage]->isEmpty()) { - SharedSymbolTables[versionIndex][profileIndex][stage] = new TSymbolTable; - SharedSymbolTables[versionIndex][profileIndex][stage]->adoptLevels(*CommonSymbolTable[versionIndex][profileIndex][CommonIndex(profile, (EShLanguage)stage)]); - SharedSymbolTables[versionIndex][profileIndex][stage]->copyTable(*stageTables[stage]); - SharedSymbolTables[versionIndex][profileIndex][stage]->readOnly(); + SharedSymbolTables[versionIndex][spvVersionIndex][profileIndex][stage] = new TSymbolTable; + SharedSymbolTables[versionIndex][spvVersionIndex][profileIndex][stage]->adoptLevels(*CommonSymbolTable + [versionIndex][spvVersionIndex][profileIndex][CommonIndex(profile, (EShLanguage)stage)]); + SharedSymbolTables[versionIndex][spvVersionIndex][profileIndex][stage]->copyTable(*stageTables[stage]); + SharedSymbolTables[versionIndex][spvVersionIndex][profileIndex][stage]->readOnly(); } } @@ -338,8 +368,8 @@ bool DeduceVersionProfile(TInfoSink& infoSink, EShLanguage stage, bool versionNo bool correct = true; if (source == EShSourceHlsl) { - version = 450; // TODO: GLSL parser is still used for builtins. - profile = ENoProfile; + version = 450; // TODO: GLSL parser is still used for builtins. + profile = ECoreProfile; // allow doubles in prototype parsing return correct; } @@ -438,7 +468,11 @@ bool DeduceVersionProfile(TInfoSink& infoSink, EShLanguage stage, bool versionNo infoSink.info.message(EPrefixError, "#version: ES shaders for Vulkan SPIR-V require version 310 or higher"); version = 310; } - // gl_spirv TODO: test versions + if (spvVersion.openGl >= 100) { + correct = false; + infoSink.info.message(EPrefixError, "#version: ES shaders for OpenGL SPIR-V are not supported"); + version = 310; + } break; case ECompatibilityProfile: infoSink.info.message(EPrefixError, "#version: compilation for SPIR-V does not support the compatibility profile"); @@ -449,7 +483,11 @@ bool DeduceVersionProfile(TInfoSink& infoSink, EShLanguage stage, bool versionNo infoSink.info.message(EPrefixError, "#version: Desktop shaders for Vulkan SPIR-V require version 140 or higher"); version = 140; } - // gl_spirv TODO: test versions + if (spvVersion.openGl >= 100 && version < 330) { + correct = false; + infoSink.info.message(EPrefixError, "#version: Desktop shaders for OpenGL SPIR-V require version 330 or higher"); + version = 330; + } break; } } @@ -593,6 +631,10 @@ bool ProcessDeferred( if (messages & EShMsgSpvRules) spvVersion.spv = 0x00010000; // TODO: eventually have this come from the outside EShSource source = (messages & EShMsgReadHlsl) ? EShSourceHlsl : EShSourceGlsl; + if (messages & EShMsgVulkanRules) + spvVersion.vulkan = 100; // TODO: eventually have this come from the outside + else if (spvVersion.spv != 0) + spvVersion.openGl = 100; // TODO: eventually have this come from the outside bool goodVersion = DeduceVersionProfile(compiler->infoSink, compiler->getLanguage(), versionNotFirst, defaultVersion, source, version, profile, spvVersion); bool versionWillBeError = (versionNotFound || (profile == EEsProfile && version >= 300 && versionNotFirst)); bool warnVersionNotFirst = false; @@ -603,10 +645,6 @@ bool ProcessDeferred( versionWillBeError = true; } - if (messages & EShMsgVulkanRules) - spvVersion.vulkan = 100; // TODO: eventually have this come from the outside - else if (spvVersion.spv != 0) - spvVersion.openGl = 100; intermediate.setSource(source); intermediate.setVersion(version); intermediate.setProfile(profile); @@ -616,6 +654,7 @@ bool ProcessDeferred( SetupBuiltinSymbolTable(version, profile, spvVersion, source); TSymbolTable* cachedTable = SharedSymbolTables[MapVersionToIndex(version)] + [MapSpvVersionToIndex(spvVersion)] [MapProfileToIndex(profile)] [compiler->getLanguage()]; @@ -744,6 +783,8 @@ public: void setLineNum(int newLineNum) { lastLine = newLineNum; } private: + SourceLineSynchronizer& operator=(const SourceLineSynchronizer&); + // A function for getting the index of the last valid source string we've // read tokens from. const std::function getLastSourceIndex; @@ -768,8 +809,8 @@ struct DoPreprocessing { explicit DoPreprocessing(std::string* string): outputString(string) {} bool operator()(TParseContextBase& parseContext, TPpContext& ppContext, TInputScanner& input, bool versionWillBeError, - TSymbolTable& , TIntermediate& , - EShOptimizationLevel , EShMessages ) + TSymbolTable&, TIntermediate&, + EShOptimizationLevel, EShMessages) { // This is a list of tokens that do not require a space before or after. static const std::string unNeededSpaceTokens = ";()[]"; @@ -1049,19 +1090,23 @@ void ShDestruct(ShHandle handle) int __fastcall ShFinalize() { for (int version = 0; version < VersionCount; ++version) { - for (int p = 0; p < ProfileCount; ++p) { - for (int lang = 0; lang < EShLangCount; ++lang) { - delete SharedSymbolTables[version][p][lang]; - SharedSymbolTables[version][p][lang] = 0; + for (int spvVersion = 0; spvVersion < SpvVersionCount; ++spvVersion) { + for (int p = 0; p < ProfileCount; ++p) { + for (int lang = 0; lang < EShLangCount; ++lang) { + delete SharedSymbolTables[version][spvVersion][p][lang]; + SharedSymbolTables[version][spvVersion][p][lang] = 0; + } } } } for (int version = 0; version < VersionCount; ++version) { - for (int p = 0; p < ProfileCount; ++p) { - for (int pc = 0; pc < EPcCount; ++pc) { - delete CommonSymbolTable[version][p][pc]; - CommonSymbolTable[version][p][pc] = 0; + for (int spvVersion = 0; spvVersion < SpvVersionCount; ++spvVersion) { + for (int p = 0; p < ProfileCount; ++p) { + for (int pc = 0; pc < EPcCount; ++pc) { + delete CommonSymbolTable[version][spvVersion][p][pc]; + CommonSymbolTable[version][spvVersion][p][pc] = 0; + } } } } diff --git a/glslang/MachineIndependent/Versions.cpp b/glslang/MachineIndependent/Versions.cpp index 7d5a81e7..e46118af 100644 --- a/glslang/MachineIndependent/Versions.cpp +++ b/glslang/MachineIndependent/Versions.cpp @@ -176,7 +176,6 @@ void TParseVersions::initializeExtensionBehavior() extensionBehavior[E_GL_ARB_shader_texture_image_samples] = EBhDisable; extensionBehavior[E_GL_ARB_viewport_array] = EBhDisable; extensionBehavior[E_GL_ARB_gpu_shader_int64] = EBhDisable; - extensionBehavior[E_GL_ARB_gl_spirv] = EBhDisable; extensionBehavior[E_GL_ARB_shader_ballot] = EBhDisable; extensionBehavior[E_GL_ARB_sparse_texture2] = EBhDisable; extensionBehavior[E_GL_ARB_sparse_texture_clamp] = EBhDisable; @@ -282,7 +281,6 @@ void TParseVersions::getPreamble(std::string& preamble) "#define GL_ARB_shader_texture_image_samples 1\n" "#define GL_ARB_viewport_array 1\n" "#define GL_ARB_gpu_shader_int64 1\n" - "#define GL_ARB_gl_spirv 1\n" "#define GL_ARB_shader_ballot 1\n" "#define GL_ARB_sparse_texture2 1\n" "#define GL_ARB_sparse_texture_clamp 1\n" @@ -298,14 +296,22 @@ void TParseVersions::getPreamble(std::string& preamble) ; // #define VULKAN XXXX + const int numberBufSize = 12; + char numberBuf[numberBufSize]; if (spvVersion.vulkan > 0) { preamble += "#define VULKAN "; - char number[12]; - snprintf(number, 12, "%d", spvVersion.vulkan); - preamble += number; + snprintf(numberBuf, numberBufSize, "%d", spvVersion.vulkan); + preamble += numberBuf; preamble += "\n"; } - // gl_spirv TODO + // #define GL_SPIRV XXXX + if (spvVersion.openGl > 0) { + preamble += "#define GL_SPIRV "; + snprintf(numberBuf, numberBufSize, "%d", spvVersion.openGl); + preamble += numberBuf; + preamble += "\n"; + } + } // diff --git a/glslang/MachineIndependent/Versions.h b/glslang/MachineIndependent/Versions.h index 3a212a00..19d101db 100644 --- a/glslang/MachineIndependent/Versions.h +++ b/glslang/MachineIndependent/Versions.h @@ -79,7 +79,7 @@ struct SpvVersion { SpvVersion() : spv(0), vulkan(0), openGl(0) {} unsigned int spv; // the version of the targeted SPIR-V, as defined by SPIR-V in word 1 of the SPIR-V binary header int vulkan; // the version of semantics for Vulkan; e.g., for GLSL from KHR_vulkan_glsl "#define VULKAN" - int openGl; // the version of semantics for OpenGL; gl_spirv TODO + int openGl; // the version of semantics for OpenGL; e.g., for GLSL from KHR_vulkan_glsl "#define GL_SPIRV" }; // @@ -124,7 +124,6 @@ const char* const E_GL_ARB_derivative_control = "GL_ARB_derivative_con const char* const E_GL_ARB_shader_texture_image_samples = "GL_ARB_shader_texture_image_samples"; const char* const E_GL_ARB_viewport_array = "GL_ARB_viewport_array"; const char* const E_GL_ARB_gpu_shader_int64 = "GL_ARB_gpu_shader_int64"; -const char* const E_GL_ARB_gl_spirv = "GL_ARB_gl_spirv"; const char* const E_GL_ARB_shader_ballot = "GL_ARB_shader_ballot"; const char* const E_GL_ARB_sparse_texture2 = "GL_ARB_sparse_texture2"; const char* const E_GL_ARB_sparse_texture_clamp = "GL_ARB_sparse_texture_clamp"; diff --git a/glslang/MachineIndependent/glslang.y b/glslang/MachineIndependent/glslang.y index 4f8e3fc1..2cd1cc61 100644 --- a/glslang/MachineIndependent/glslang.y +++ b/glslang/MachineIndependent/glslang.y @@ -2633,22 +2633,7 @@ jump_statement parseContext.postMainReturn = true; } | RETURN expression SEMICOLON { - parseContext.functionReturnsValue = true; - if (parseContext.currentFunctionType->getBasicType() == EbtVoid) { - parseContext.error($1.loc, "void function cannot return a value", "return", ""); - $$ = parseContext.intermediate.addBranch(EOpReturn, $1.loc); - } else if (*(parseContext.currentFunctionType) != $2->getType()) { - TIntermTyped* converted = parseContext.intermediate.addConversion(EOpReturn, *parseContext.currentFunctionType, $2); - if (converted) { - if (parseContext.version < 420) - parseContext.warn($1.loc, "type conversion on return values was not explicitly allowed until version 420", "return", ""); - $$ = parseContext.intermediate.addBranch(EOpReturn, converted, $1.loc); - } else { - parseContext.error($1.loc, "type does not match, or is not convertible to, the function's return type", "return", ""); - $$ = parseContext.intermediate.addBranch(EOpReturn, $2, $1.loc); - } - } else - $$ = parseContext.intermediate.addBranch(EOpReturn, $2, $1.loc); + $$ = parseContext.handleReturnValue($1.loc, $2); } | DISCARD SEMICOLON { parseContext.requireStage($1.loc, EShLangFragment, "discard"); diff --git a/glslang/MachineIndependent/glslang_tab.cpp b/glslang/MachineIndependent/glslang_tab.cpp index a284fda4..c8664f9d 100644 --- a/glslang/MachineIndependent/glslang_tab.cpp +++ b/glslang/MachineIndependent/glslang_tab.cpp @@ -827,8 +827,8 @@ static const yytype_uint16 yyrline[] = 2399, 2399, 2413, 2416, 2424, 2432, 2443, 2444, 2448, 2455, 2459, 2467, 2471, 2484, 2484, 2504, 2507, 2513, 2525, 2537, 2537, 2552, 2552, 2568, 2568, 2589, 2592, 2598, 2601, 2607, - 2611, 2618, 2623, 2628, 2635, 2653, 2662, 2666, 2673, 2676, - 2682, 2682 + 2611, 2618, 2623, 2628, 2635, 2638, 2647, 2651, 2658, 2661, + 2667, 2667 }; #endif @@ -7360,80 +7360,65 @@ yyreduce: case 414: #line 2635 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { - parseContext.functionReturnsValue = true; - if (parseContext.currentFunctionType->getBasicType() == EbtVoid) { - parseContext.error((yyvsp[-2].lex).loc, "void function cannot return a value", "return", ""); - (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpReturn, (yyvsp[-2].lex).loc); - } else if (*(parseContext.currentFunctionType) != (yyvsp[-1].interm.intermTypedNode)->getType()) { - TIntermTyped* converted = parseContext.intermediate.addConversion(EOpReturn, *parseContext.currentFunctionType, (yyvsp[-1].interm.intermTypedNode)); - if (converted) { - if (parseContext.version < 420) - parseContext.warn((yyvsp[-2].lex).loc, "type conversion on return values was not explicitly allowed until version 420", "return", ""); - (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpReturn, converted, (yyvsp[-2].lex).loc); - } else { - parseContext.error((yyvsp[-2].lex).loc, "type does not match, or is not convertible to, the function's return type", "return", ""); - (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpReturn, (yyvsp[-1].interm.intermTypedNode), (yyvsp[-2].lex).loc); - } - } else - (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpReturn, (yyvsp[-1].interm.intermTypedNode), (yyvsp[-2].lex).loc); + (yyval.interm.intermNode) = parseContext.handleReturnValue((yyvsp[-2].lex).loc, (yyvsp[-1].interm.intermTypedNode)); } -#line 7381 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7366 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 415: -#line 2653 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2638 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { parseContext.requireStage((yyvsp[-1].lex).loc, EShLangFragment, "discard"); (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpKill, (yyvsp[-1].lex).loc); } -#line 7390 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7375 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 416: -#line 2662 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2647 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); parseContext.intermediate.setTreeRoot((yyval.interm.intermNode)); } -#line 7399 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7384 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 417: -#line 2666 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2651 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-1].interm.intermNode), (yyvsp[0].interm.intermNode)); parseContext.intermediate.setTreeRoot((yyval.interm.intermNode)); } -#line 7408 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7393 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 418: -#line 2673 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2658 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 7416 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7401 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 419: -#line 2676 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2661 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 7424 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7409 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 420: -#line 2682 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2667 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { (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); } -#line 7433 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7418 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 421: -#line 2686 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +#line 2671 "MachineIndependent/glslang.y" /* yacc.c:1646 */ { // May be best done as post process phase on intermediate code if (parseContext.currentFunctionType->getBasicType() != EbtVoid && ! parseContext.functionReturnsValue) @@ -7449,11 +7434,11 @@ yyreduce: (yyval.interm.intermNode)->getAsAggregate()->setDebug(parseContext.contextPragma.debug); (yyval.interm.intermNode)->getAsAggregate()->addToPragmaTable(parseContext.contextPragma.pragmaTable); } -#line 7453 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7438 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; -#line 7457 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +#line 7442 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ default: break; } /* User semantic actions sometimes alter yychar, and that requires @@ -7681,5 +7666,5 @@ yyreturn: #endif return yyresult; } -#line 2703 "MachineIndependent/glslang.y" /* yacc.c:1906 */ +#line 2688 "MachineIndependent/glslang.y" /* yacc.c:1906 */ diff --git a/glslang/MachineIndependent/preprocessor/PpContext.h b/glslang/MachineIndependent/preprocessor/PpContext.h index 4e47fa05..23021e24 100644 --- a/glslang/MachineIndependent/preprocessor/PpContext.h +++ b/glslang/MachineIndependent/preprocessor/PpContext.h @@ -487,6 +487,8 @@ protected: } private: + TokenizableIncludeFile& operator=(const TokenizableIncludeFile&); + // Stores the prologue for this string. const std::string prologue_; diff --git a/glslang/MachineIndependent/propagateNoContraction.cpp b/glslang/MachineIndependent/propagateNoContraction.cpp index 835f57f6..e599f4d9 100644 --- a/glslang/MachineIndependent/propagateNoContraction.cpp +++ b/glslang/MachineIndependent/propagateNoContraction.cpp @@ -244,6 +244,8 @@ public: bool visitBranch(glslang::TVisit, glslang::TIntermBranch*) override; protected: + TSymbolDefinitionCollectingTraverser& operator=(const TSymbolDefinitionCollectingTraverser&); + // The mapping from symbol node IDs to their defining nodes. This should be // populated along traversing the AST. NodeMapping& symbol_definition_mapping_; @@ -548,6 +550,8 @@ public: } protected: + TNoContractionAssigneeCheckingTraverser& operator=(const TNoContractionAssigneeCheckingTraverser&); + bool visitBinary(glslang::TVisit, glslang::TIntermBinary* node) override; void visitSymbol(glslang::TIntermSymbol* node) override; @@ -648,6 +652,8 @@ public: } protected: + TNoContractionPropagator& operator=(const TNoContractionPropagator&); + // Visits an aggregate node. The node can be a initializer list, in which // case we need to find the 'precise' or 'precise' containing object node // with the access chain record. In other cases, just need to traverse all diff --git a/glslang/Public/ShaderLang.h b/glslang/Public/ShaderLang.h index 64d6ab9f..4b4d0fc6 100644 --- a/glslang/Public/ShaderLang.h +++ b/glslang/Public/ShaderLang.h @@ -37,6 +37,8 @@ #include "../Include/ResourceLimits.h" #include "../MachineIndependent/Versions.h" +#include + #ifdef _WIN32 #define C_DECL __cdecl //#ifdef SH_EXPORTING @@ -139,6 +141,7 @@ enum EShMessages { EShMsgVulkanRules = (1 << 4), // issue messages for Vulkan-requirements of GLSL for SPIR-V 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 }; // @@ -307,7 +310,7 @@ public: // 2. Call parse with an Includer. // // When the Glslang parser encounters an #include directive, it calls - // the Includer's include method with the the requested include name + // the Includer's include method with the requested include name // together with the current string name. The returned IncludeResult // contains the fully resolved name of the included source, together // with the source text that should replace the #include directive @@ -323,8 +326,10 @@ public: // An IncludeResult contains the resolved name and content of a source // inclusion. struct IncludeResult { + IncludeResult(const std::string& file_name, const char* const file_data, const size_t file_length, void* user_data) : + file_name(file_name), file_data(file_data), file_length(file_length), user_data(user_data) { } // For a successful inclusion, the fully resolved name of the requested - // include. For example, in a filesystem-based includer, full resolution + // include. For example, in a file system-based includer, full resolution // should convert a relative path name into an absolute path name. // For a failed inclusion, this is an empty string. const std::string file_name; @@ -337,6 +342,9 @@ public: const size_t file_length; // Include resolver's context. void* user_data; + protected: + IncludeResult& operator=(const IncludeResult&); + IncludeResult(); }; // Resolves an inclusion request by name, type, current source name, @@ -365,11 +373,8 @@ public: public: IncludeResult* include(const char*, IncludeType, const char*, size_t) override { - static const char unexpected_include[] = - "unexpected include directive"; - static const IncludeResult unexpectedIncludeResult = - {"", unexpected_include, sizeof(unexpected_include) - 1, nullptr}; - return new IncludeResult(unexpectedIncludeResult); + const char* unexpected_include = "unexpected include directive"; + return new IncludeResult(std::string(""), unexpected_include, strlen(unexpected_include), nullptr); } virtual void releaseInclude(IncludeResult* result) override { diff --git a/gtests/AST.FromFile.cpp b/gtests/AST.FromFile.cpp index 38d6d0ae..6f4abef1 100644 --- a/gtests/AST.FromFile.cpp +++ b/gtests/AST.FromFile.cpp @@ -185,7 +185,10 @@ INSTANTIATE_TEST_CASE_P( "voidFunction.frag", "whileLoop.frag", "nonVulkan.frag", - "spv.atomic.comp", + "negativeArraySize.comp", + "precise.tesc", + "precise_struct_block.vert", + "maxClipDistances.vert", })), FileNameAsCustomTestSuffix ); diff --git a/gtests/Config.FromFile.cpp b/gtests/Config.FromFile.cpp index 20c98be5..7bc6a70e 100644 --- a/gtests/Config.FromFile.cpp +++ b/gtests/Config.FromFile.cpp @@ -97,8 +97,8 @@ TEST_P(ConfigTest, FromFile) INSTANTIATE_TEST_CASE_P( Glsl, ConfigTest, ::testing::ValuesIn(std::vector({ - {"specExamples.vert", "baseResults/test.conf", "specExamples.vert.out", EShMsgAST}, - {"100Limits.vert", "100.conf", "100LimitsConf.vert.out", EShMsgDefault}, + {"specExamples.vert", "baseResults/test.conf", "specExamples.vert.out", (EShMessages)(EShMsgAST | EShMsgCascadingErrors)}, + {"100Limits.vert", "100.conf", "100LimitsConf.vert.out", EShMsgCascadingErrors}, })), ); // clang-format on diff --git a/gtests/Hlsl.FromFile.cpp b/gtests/Hlsl.FromFile.cpp index 51be6f71..a0044190 100644 --- a/gtests/Hlsl.FromFile.cpp +++ b/gtests/Hlsl.FromFile.cpp @@ -76,14 +76,17 @@ INSTANTIATE_TEST_CASE_P( {"hlsl.assoc.frag", "PixelShaderFunction"}, {"hlsl.attribute.frag", "PixelShaderFunction"}, {"hlsl.cast.frag", "PixelShaderFunction"}, + {"hlsl.discard.frag", "PixelShaderFunction"}, {"hlsl.doLoop.frag", "PixelShaderFunction"}, {"hlsl.float1.frag", "PixelShaderFunction"}, {"hlsl.float4.frag", "PixelShaderFunction"}, {"hlsl.forLoop.frag", "PixelShaderFunction"}, {"hlsl.if.frag", "PixelShaderFunction"}, + {"hlsl.init.frag", "ShaderFunction"}, {"hlsl.intrinsics.barriers.comp", "ComputeShaderFunction"}, {"hlsl.intrinsics.comp", "ComputeShaderFunction"}, {"hlsl.intrinsics.evalfns.frag", "main"}, + {"hlsl.intrinsics.double.frag", "PixelShaderFunction"}, {"hlsl.intrinsics.f1632.frag", "PixelShaderFunction"}, {"hlsl.intrinsics.frag", "PixelShaderFunction"}, {"hlsl.intrinsics.lit.frag", "PixelShaderFunction"}, @@ -98,7 +101,10 @@ INSTANTIATE_TEST_CASE_P( {"hlsl.scope.frag", "PixelShaderFunction"}, {"hlsl.sin.frag", "PixelShaderFunction"}, {"hlsl.struct.frag", "PixelShaderFunction"}, + {"hlsl.switch.frag", "PixelShaderFunction"}, {"hlsl.swizzle.frag", "PixelShaderFunction"}, + {"hlsl.templatetypes.frag", "PixelShaderFunction"}, + {"hlsl.typedef.frag", "PixelShaderFunction"}, {"hlsl.whileLoop.frag", "PixelShaderFunction"}, {"hlsl.void.frag", "PixelShaderFunction"}, }), diff --git a/gtests/Initializer.h b/gtests/Initializer.h index 3cafb52a..34af9ad9 100644 --- a/gtests/Initializer.h +++ b/gtests/Initializer.h @@ -51,7 +51,7 @@ namespace glslangtest { // gets fixed. class GlslangInitializer { public: - GlslangInitializer() : lastMessages(EShMsgDefault) + GlslangInitializer() : lastMessages(EShMsgCascadingErrors) { glslang::InitializeProcess(); } diff --git a/gtests/Link.FromFile.cpp b/gtests/Link.FromFile.cpp index 331c5b27..b324b9ab 100644 --- a/gtests/Link.FromFile.cpp +++ b/gtests/Link.FromFile.cpp @@ -48,8 +48,7 @@ TEST_P(LinkTest, FromFile) { const auto& fileNames = GetParam(); const size_t fileCount = fileNames.size(); - const EShMessages controls = DeriveOptions( - Source::GLSL, Semantics::OpenGL, Target::AST); + const EShMessages controls = DeriveOptions(Source::GLSL, Semantics::OpenGL, Target::AST); GlslangResult result; // Compile each input shader file. diff --git a/gtests/Pp.FromFile.cpp b/gtests/Pp.FromFile.cpp index 01bdfc32..04ac3f75 100644 --- a/gtests/Pp.FromFile.cpp +++ b/gtests/Pp.FromFile.cpp @@ -65,6 +65,7 @@ INSTANTIATE_TEST_CASE_P( "preprocessor.success_if_parse_would_fail.vert", "preprocessor.defined.vert", "preprocessor.many.endif.vert", + "preprocessor.eof_missing.vert", })), FileNameAsCustomTestSuffix ); diff --git a/gtests/Spv.FromFile.cpp b/gtests/Spv.FromFile.cpp index fd9a38b5..dbe0507d 100644 --- a/gtests/Spv.FromFile.cpp +++ b/gtests/Spv.FromFile.cpp @@ -41,19 +41,30 @@ namespace glslangtest { namespace { -using CompileToSpirvTest = GlslangTest<::testing::TestWithParam>; +using CompileVulkanToSpirvTest = GlslangTest<::testing::TestWithParam>; +using CompileOpenGLToSpirvTest = GlslangTest<::testing::TestWithParam>; using VulkanSemantics = GlslangTest<::testing::TestWithParam>; +using OpenGLSemantics = GlslangTest<::testing::TestWithParam>; using VulkanAstSemantics = GlslangTest<::testing::TestWithParam>; // Compiling GLSL to SPIR-V under Vulkan semantics. Expected to successfully // generate SPIR-V. -TEST_P(CompileToSpirvTest, FromFile) +TEST_P(CompileVulkanToSpirvTest, FromFile) { loadFileCompileAndCheck(GLSLANG_TEST_DIRECTORY, GetParam(), Source::GLSL, Semantics::Vulkan, Target::Spv); } +// Compiling GLSL to SPIR-V under OpenGL semantics. Expected to successfully +// generate SPIR-V. +TEST_P(CompileOpenGLToSpirvTest, FromFile) +{ + loadFileCompileAndCheck(GLSLANG_TEST_DIRECTORY, GetParam(), + Source::GLSL, Semantics::OpenGL, + Target::Spv); +} + // GLSL-level Vulkan semantics test. Expected to error out before generating // SPIR-V. TEST_P(VulkanSemantics, FromFile) @@ -63,6 +74,15 @@ TEST_P(VulkanSemantics, FromFile) Target::Spv); } +// GLSL-level Vulkan semantics test. Expected to error out before generating +// SPIR-V. +TEST_P(OpenGLSemantics, FromFile) +{ + loadFileCompileAndCheck(GLSLANG_TEST_DIRECTORY, GetParam(), + Source::GLSL, Semantics::OpenGL, + Target::Spv); +} + // GLSL-level Vulkan semantics test that need to see the AST for validation. TEST_P(VulkanAstSemantics, FromFile) { @@ -73,7 +93,7 @@ TEST_P(VulkanAstSemantics, FromFile) // clang-format off INSTANTIATE_TEST_CASE_P( - Glsl, CompileToSpirvTest, + Glsl, CompileVulkanToSpirvTest, ::testing::ValuesIn(std::vector({ // Test looping constructs. // No tests yet for making sure break and continue from a nested loop @@ -106,7 +126,9 @@ INSTANTIATE_TEST_CASE_P( "spv.400.tesc", "spv.400.tese", "spv.420.geom", + "spv.430.frag", "spv.430.vert", + "spv.450.tesc", "spv.accessChain.frag", "spv.aggOps.frag", "spv.always-discard.frag", @@ -184,6 +206,20 @@ INSTANTIATE_TEST_CASE_P( "spv.specConstant.vert", "spv.specConstant.comp", "spv.specConstantComposite.vert", + "spv.specConstantOperations.vert", + "spv.precise.tese", + "spv.precise.tesc", + })), + FileNameAsCustomTestSuffix +); + +// clang-format off +INSTANTIATE_TEST_CASE_P( + Glsl, CompileOpenGLToSpirvTest, + ::testing::ValuesIn(std::vector({ + "spv.atomic.comp", + "spv.glFragColor.frag", + "spv.specConst.vert", })), FileNameAsCustomTestSuffix ); @@ -198,6 +234,18 @@ INSTANTIATE_TEST_CASE_P( FileNameAsCustomTestSuffix ); +INSTANTIATE_TEST_CASE_P( + Glsl, OpenGLSemantics, + ::testing::ValuesIn(std::vector({ + "glspv.esversion.vert", + "glspv.version.frag", + "glspv.version.vert", + "glspv.frag", + "glspv.vert", + })), + FileNameAsCustomTestSuffix +); + INSTANTIATE_TEST_CASE_P( Glsl, VulkanAstSemantics, ::testing::ValuesIn(std::vector({ diff --git a/gtests/TestFixture.cpp b/gtests/TestFixture.cpp index 2cf70707..f170f368 100644 --- a/gtests/TestFixture.cpp +++ b/gtests/TestFixture.cpp @@ -68,7 +68,7 @@ EShLanguage GetShaderStage(const std::string& stage) EShMessages DeriveOptions(Source source, Semantics semantics, Target target) { - EShMessages result = EShMsgDefault; + EShMessages result = EShMsgCascadingErrors; switch (source) { case Source::GLSL: @@ -107,7 +107,7 @@ std::pair ReadFile(const std::string& path) if (fstream) { std::string contents; fstream.seekg(0, std::ios::end); - contents.reserve(fstream.tellg()); + contents.reserve((std::string::size_type)fstream.tellg()); fstream.seekg(0, std::ios::beg); contents.assign((std::istreambuf_iterator(fstream)), std::istreambuf_iterator()); diff --git a/gtests/TestFixture.h b/gtests/TestFixture.h index e71bab1c..8dffb805 100644 --- a/gtests/TestFixture.h +++ b/gtests/TestFixture.h @@ -180,8 +180,7 @@ public: shader->setStringsWithLengths(&shaderStrings, &shaderLengths, 1); if (!entryPointName.empty()) shader->setEntryPoint(entryPointName.c_str()); // Reinitialize glslang if the semantics change. - GlslangInitializer::InitializationToken token = - GlobalTestSettings.initializer->acquire(controls); + GlobalTestSettings.initializer->acquire(controls); return shader->parse( (resources ? resources : &glslang::DefaultTBuiltInResource), defaultVersion, isForwardCompatible, controls); @@ -265,8 +264,7 @@ public: tryLoadFile(expectedOutputFname, "expected output", &expectedOutput); const EShMessages controls = DeriveOptions(source, semantics, target); - GlslangResult result = - compileAndLink(testName, input, entryPointName, controls); + GlslangResult result = compileAndLink(testName, input, entryPointName, controls); // Generate the hybrid output in the way of glslangValidator. std::ostringstream stream; @@ -291,7 +289,7 @@ public: glslang::TShader::ForbidInclude includer; const bool success = shader.preprocess( &glslang::DefaultTBuiltInResource, defaultVersion, defaultProfile, - forceVersionProfile, isForwardCompatible, EShMsgOnlyPreprocessor, + forceVersionProfile, isForwardCompatible, (EShMessages)(EShMsgOnlyPreprocessor | EShMsgCascadingErrors), &ppShader, includer); std::string log = shader.getInfoLog(); diff --git a/hlsl/hlslGrammar.cpp b/hlsl/hlslGrammar.cpp index 17ec8208..ee8ebf3f 100755 --- a/hlsl/hlslGrammar.cpp +++ b/hlsl/hlslGrammar.cpp @@ -1,5 +1,6 @@ // //Copyright (C) 2016 Google, Inc. +//Copyright (C) 2016 LunarG, Inc. // //All rights reserved. // @@ -105,16 +106,119 @@ bool HlslGrammar::acceptCompilationUnit() } // declaration -// : SEMICOLON -// : fully_specified_type SEMICOLON -// | fully_specified_type identifier array_specifier post_decls (EQUAL expression)opt SEMICOLON -// | fully_specified_type identifier function_parameters post_decls SEMICOLON // function prototype +// : fully_specified_type declarator_list SEMICOLON // | fully_specified_type identifier function_parameters post_decls compound_statement // function definition +// | typedef declaration // -// 'node' could get created if the declaration creates code, like an initializer +// declarator_list +// : declarator COMMA declarator COMMA declarator... // zero or more declarators +// +// declarator +// : identifier array_specifier post_decls +// | identifier array_specifier post_decls EQUAL assignment_expression +// | identifier function_parameters post_decls // function prototype +// +// Parsing has to go pretty far in to know whether it's a variable, prototype, or +// function definition, so the implementation below doesn't perfectly divide up the grammar +// as above. (The 'identifier' in the first item in init_declarator list is the +// same as 'identifier' for function declarations.) +// +// 'node' could get populated if the declaration creates code, like an initializer // or a function body. // bool HlslGrammar::acceptDeclaration(TIntermNode*& node) +{ + node = nullptr; + bool list = false; + + // typedef + bool typedefDecl = acceptTokenClass(EHTokTypedef); + + // fully_specified_type + TType type; + if (! acceptFullySpecifiedType(type)) + return false; + if (type.getQualifier().storage == EvqTemporary && parseContext.symbolTable.atGlobalLevel()) + type.getQualifier().storage = EvqGlobal; + + // identifier + HlslToken idToken; + while (acceptIdentifier(idToken)) { + // function_parameters + TFunction* function = new TFunction(idToken.string, type); + if (acceptFunctionParameters(*function)) { + // post_decls + acceptPostDecls(type); + + // compound_statement (function body definition) or just a prototype? + if (peekTokenClass(EHTokLeftBrace)) { + if (list) + 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); + } else { + if (typedefDecl) + parseContext.error(idToken.loc, "function typedefs not implemented", "{", ""); + parseContext.handleFunctionDeclarator(idToken.loc, *function, true); + } + } else { + // a variable declaration + + // array_specifier + TArraySizes* arraySizes = nullptr; + acceptArraySpecifier(arraySizes); + + // post_decls + acceptPostDecls(type); + + // EQUAL assignment_expression + TIntermTyped* expressionNode = nullptr; + if (acceptTokenClass(EHTokAssign)) { + if (typedefDecl) + parseContext.error(idToken.loc, "can't have an initializer", "typedef", ""); + if (! acceptAssignmentExpression(expressionNode)) { + expected("initializer"); + return false; + } + } + + if (typedefDecl) + parseContext.declareTypedef(idToken.loc, *idToken.string, type, arraySizes); + 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); + } + } + + if (acceptTokenClass(EHTokComma)) { + list = true; + continue; + } + }; + + // The top-level node is a sequence. + if (node != nullptr) + node->getAsAggregate()->setOperator(EOpSequence); + + // SEMICOLON + if (! acceptTokenClass(EHTokSemicolon)) { + expected(";"); + return false; + } + + return true; +} + +// control_declaration +// : fully_specified_type identifier EQUAL expression +// +bool HlslGrammar::acceptControlDeclaration(TIntermNode*& node) { node = nullptr; @@ -125,50 +229,25 @@ bool HlslGrammar::acceptDeclaration(TIntermNode*& node) // identifier HlslToken idToken; - if (acceptIdentifier(idToken)) { - // array_specifier - TArraySizes* arraySizes = nullptr; - acceptArraySpecifier(arraySizes); - - // post_decls - acceptPostDecls(type); - - // EQUAL expression - TIntermTyped* expressionNode = nullptr; - if (acceptTokenClass(EHTokAssign)) { - if (! acceptExpression(expressionNode)) { - expected("initializer"); - return false; - } - } - - // SEMICOLON - if (acceptTokenClass(EHTokSemicolon)) { - node = parseContext.declareVariable(idToken.loc, *idToken.string, type, arraySizes, expressionNode); - return true; - } - - // function_parameters - TFunction* function = new TFunction(idToken.string, type); - if (acceptFunctionParameters(*function)) { - // post_decls - acceptPostDecls(type); - - // compound_statement - if (peekTokenClass(EHTokLeftBrace)) - return acceptFunctionDefinition(*function, node); - - // SEMICOLON - if (acceptTokenClass(EHTokSemicolon)) - return true; - - return false; - } + if (! acceptIdentifier(idToken)) { + expected("identifier"); + return false; } - // SEMICOLON - if (acceptTokenClass(EHTokSemicolon)) - return true; + // EQUAL + TIntermTyped* expressionNode = nullptr; + if (! acceptTokenClass(EHTokAssign)) { + expected("="); + return false; + } + + // expression + if (! acceptExpression(expressionNode)) { + expected("initializer"); + return false; + } + + node = parseContext.declareVariable(idToken.loc, *idToken.string, type, 0, expressionNode); return true; } @@ -254,12 +333,174 @@ void HlslGrammar::acceptQualifier(TQualifier& qualifier) } while (true); } +// template_type +// : FLOAT +// | DOUBLE +// | INT +// | DWORD +// | UINT +// | BOOL +// +bool HlslGrammar::acceptTemplateType(TBasicType& basicType) +{ + switch (peek()) { + case EHTokFloat: + basicType = EbtFloat; + break; + case EHTokDouble: + basicType = EbtDouble; + break; + case EHTokInt: + case EHTokDword: + basicType = EbtInt; + break; + case EHTokUint: + basicType = EbtUint; + break; + case EHTokBool: + basicType = EbtBool; + break; + default: + return false; + } + + advanceToken(); + + return true; +} + +// vector_template_type +// : VECTOR +// | VECTOR LEFT_ANGLE template_type COMMA integer_literal RIGHT_ANGLE +// +bool HlslGrammar::acceptVectorTemplateType(TType& type) +{ + if (! acceptTokenClass(EHTokVector)) + return false; + + if (! acceptTokenClass(EHTokLeftAngle)) { + // in HLSL, 'vector' alone means float4. + new(&type) TType(EbtFloat, EvqTemporary, 4); + return true; + } + + TBasicType basicType; + if (! acceptTemplateType(basicType)) { + expected("scalar type"); + return false; + } + + // COMMA + if (! acceptTokenClass(EHTokComma)) { + expected(","); + return false; + } + + // integer + if (! peekTokenClass(EHTokIntConstant)) { + expected("literal integer"); + return false; + } + + TIntermTyped* vecSize; + if (! acceptLiteral(vecSize)) + return false; + + const int vecSizeI = vecSize->getAsConstantUnion()->getConstArray()[0].getIConst(); + + new(&type) TType(basicType, EvqTemporary, vecSizeI); + + if (vecSizeI == 1) + type.makeVector(); + + if (!acceptTokenClass(EHTokRightAngle)) { + expected("right angle bracket"); + return false; + } + + return true; +} + +// matrix_template_type +// : MATRIX +// | MATRIX LEFT_ANGLE template_type COMMA integer_literal COMMA integer_literal RIGHT_ANGLE +// +bool HlslGrammar::acceptMatrixTemplateType(TType& type) +{ + if (! acceptTokenClass(EHTokMatrix)) + return false; + + if (! acceptTokenClass(EHTokLeftAngle)) { + // in HLSL, 'matrix' alone means float4x4. + new(&type) TType(EbtFloat, EvqTemporary, 0, 4, 4); + return true; + } + + TBasicType basicType; + if (! acceptTemplateType(basicType)) { + expected("scalar type"); + return false; + } + + // COMMA + if (! acceptTokenClass(EHTokComma)) { + expected(","); + return false; + } + + // integer rows + if (! peekTokenClass(EHTokIntConstant)) { + expected("literal integer"); + return false; + } + + TIntermTyped* rows; + if (! acceptLiteral(rows)) + return false; + + // COMMA + if (! acceptTokenClass(EHTokComma)) { + expected(","); + return false; + } + + // integer cols + if (! peekTokenClass(EHTokIntConstant)) { + expected("literal integer"); + return false; + } + + TIntermTyped* cols; + if (! acceptLiteral(cols)) + return false; + + new(&type) TType(basicType, EvqTemporary, 0, + cols->getAsConstantUnion()->getConstArray()[0].getIConst(), + rows->getAsConstantUnion()->getConstArray()[0].getIConst()); + + if (!acceptTokenClass(EHTokRightAngle)) { + expected("right angle bracket"); + return false; + } + + return true; +} + + // If token is for a type, update 'type' with the type information, // and return true and advance. // Otherwise, return false, and don't advance bool HlslGrammar::acceptType(TType& type) { switch (peek()) { + case EHTokVector: + return acceptVectorTemplateType(type); + break; + + case EHTokMatrix: + return acceptMatrixTemplateType(type); + break; + case EHTokStruct: return acceptStruct(type); break; @@ -349,6 +590,7 @@ bool HlslGrammar::acceptType(TType& type) new(&type) TType(EbtUint, EvqTemporary, 4); break; + case EHTokBool: new(&type) TType(EbtBool); break; @@ -833,7 +1075,9 @@ bool HlslGrammar::acceptFunctionDefinition(TFunction& function, TIntermNode*& no // Accept an expression with parenthesis around it, where // the parenthesis ARE NOT expression parenthesis, but the -// syntactically required ones like in "if ( expression )" +// syntactically required ones like in "if ( expression )". +// +// Also accepts a declaration expression; "if (int a = expression)". // // Note this one is not set up to be speculative; as it gives // errors if not found. @@ -844,9 +1088,21 @@ bool HlslGrammar::acceptParenExpression(TIntermTyped*& expression) if (! acceptTokenClass(EHTokLeftParen)) expected("("); - if (! acceptExpression(expression)) { - expected("expression"); - return false; + bool decl = false; + TIntermNode* declNode = nullptr; + decl = acceptControlDeclaration(declNode); + if (decl) { + if (declNode == nullptr || declNode->getAsTyped() == nullptr) { + expected("initialized declaration"); + return false; + } else + expression = declNode->getAsTyped(); + } else { + // no declaration + if (! acceptExpression(expression)) { + expected("expression"); + return false; + } } // RIGHT_PAREN @@ -891,28 +1147,77 @@ bool HlslGrammar::acceptExpression(TIntermTyped*& node) } while (true); } +// initializer +// : LEFT_BRACE initializer_list RIGHT_BRACE +// +// initializer_list +// : assignment_expression COMMA assignment_expression COMMA ... +// +bool HlslGrammar::acceptInitializer(TIntermTyped*& node) +{ + // LEFT_BRACE + if (! acceptTokenClass(EHTokLeftBrace)) + return false; + + // initializer_list + TSourceLoc loc = token.loc; + node = nullptr; + do { + // assignment_expression + TIntermTyped* expr; + if (! acceptAssignmentExpression(expr)) { + expected("assignment expression in initializer list"); + return false; + } + node = intermediate.growAggregate(node, expr, loc); + + // COMMA + if (acceptTokenClass(EHTokComma)) + continue; + + // RIGHT_BRACE + if (acceptTokenClass(EHTokRightBrace)) + return true; + + expected(", or }"); + return false; + } while (true); +} + // Accept an assignment expression, where assignment operations -// associate right-to-left. This is, it is implicit, for example +// associate right-to-left. That is, it is implicit, for example // // a op (b op (c op d)) // // assigment_expression // : binary_expression op binary_expression op binary_expression ... +// | initializer // bool HlslGrammar::acceptAssignmentExpression(TIntermTyped*& node) { + // initializer + if (peekTokenClass(EHTokLeftBrace)) { + if (acceptInitializer(node)) + return true; + + expected("initializer"); + return false; + } + + // binary_expression if (! acceptBinaryExpression(node, PlLogicalOr)) return false; + // assignment operation? TOperator assignOp = HlslOpMap::assignment(peek()); if (assignOp == EOpNull) return true; - // ... op + // assignment op TSourceLoc loc = token.loc; advanceToken(); - // ... binary_expression + // binary_expression // But, done by recursing this function, which automatically // gets the right-to-left associativity. TIntermTyped* rightNode = nullptr; @@ -1271,8 +1576,16 @@ bool HlslGrammar::acceptCompoundStatement(TIntermNode*& retStatement) // statement statement ... TIntermNode* statement = nullptr; while (acceptStatement(statement)) { - // hook it up - compoundStatement = intermediate.growAggregate(compoundStatement, statement); + TIntermBranch* branch = statement ? statement->getAsBranchNode() : nullptr; + if (branch != nullptr && (branch->getFlowOp() == EOpCase || + branch->getFlowOp() == EOpDefault)) { + // hook up individual subsequences within a switch statement + parseContext.wrapupSwitchSubsequence(compoundStatement, statement); + compoundStatement = nullptr; + } else { + // hook it up to the growing compound statement + compoundStatement = intermediate.growAggregate(compoundStatement, statement); + } } if (compoundStatement) compoundStatement->setOperator(EOpSequence); @@ -1346,6 +1659,8 @@ bool HlslGrammar::acceptStatement(TIntermNode*& statement) case EHTokCase: return acceptCaseLabel(statement); + case EHTokDefault: + return acceptDefaultLabel(statement); case EHTokSemicolon: return acceptTokenClass(EHTokSemicolon); @@ -1476,9 +1791,34 @@ bool HlslGrammar::acceptSelectionStatement(TIntermNode*& statement) return true; } +// switch_statement +// : SWITCH LEFT_PAREN expression RIGHT_PAREN compound_statement +// bool HlslGrammar::acceptSwitchStatement(TIntermNode*& statement) { - return false; + // SWITCH + TSourceLoc loc = token.loc; + if (! acceptTokenClass(EHTokSwitch)) + return false; + + // LEFT_PAREN expression RIGHT_PAREN + parseContext.pushScope(); + TIntermTyped* switchExpression; + if (! acceptParenExpression(switchExpression)) { + parseContext.popScope(); + return false; + } + + // compound_statement + parseContext.pushSwitchSequence(new TIntermSequence); + bool statementOkay = acceptCompoundStatement(statement); + if (statementOkay) + statement = parseContext.addSwitch(loc, switchExpression, statement ? statement->getAsAggregate() : nullptr); + + parseContext.popSwitchSequence(); + parseContext.popScope(); + + return statementOkay; } // iteration_statement @@ -1567,9 +1907,14 @@ bool HlslGrammar::acceptIterationStatement(TIntermNode*& statement) // of the for sub-statement parseContext.pushScope(); - // initializer SEMI_COLON - TIntermTyped* initializer = nullptr; // TODO, "for (initializer" needs to support decl. statement - acceptExpression(initializer); + // initializer + TIntermNode* initNode = nullptr; + if (! acceptControlDeclaration(initNode)) { + TIntermTyped* initExpr = nullptr; + acceptExpression(initExpr); + initNode = initExpr; + } + // SEMI_COLON if (! acceptTokenClass(EHTokSemicolon)) expected(";"); @@ -1592,7 +1937,7 @@ bool HlslGrammar::acceptIterationStatement(TIntermNode*& statement) return false; } - statement = intermediate.addForLoop(statement, initializer, condition, iterator, true, loc); + statement = intermediate.addForLoop(statement, initNode, condition, iterator, true, loc); parseContext.popScope(); parseContext.unnestLooping(); @@ -1614,42 +1959,96 @@ bool HlslGrammar::acceptIterationStatement(TIntermNode*& statement) // bool HlslGrammar::acceptJumpStatement(TIntermNode*& statement) { - switch (peek()) { + EHlslTokenClass jump = peek(); + switch (jump) { case EHTokContinue: case EHTokBreak: case EHTokDiscard: - // TODO - return false; - case EHTokReturn: - // return - if (acceptTokenClass(EHTokReturn)) { - // expression - TIntermTyped* node; - if (acceptExpression(node)) { - // hook it up - statement = intermediate.addBranch(EOpReturn, node, token.loc); - } else - statement = intermediate.addBranch(EOpReturn, token.loc); - - // SEMICOLON - if (! acceptTokenClass(EHTokSemicolon)) { - expected(";"); - return false; - } - - return true; - } - + advanceToken(); + break; default: + // not something we handle in this function return false; } + + switch (jump) { + case EHTokContinue: + statement = intermediate.addBranch(EOpContinue, token.loc); + break; + case EHTokBreak: + statement = intermediate.addBranch(EOpBreak, token.loc); + break; + case EHTokDiscard: + statement = intermediate.addBranch(EOpKill, token.loc); + break; + + case EHTokReturn: + { + // expression + TIntermTyped* node; + if (acceptExpression(node)) { + // hook it up + statement = intermediate.addBranch(EOpReturn, node, token.loc); + } else + statement = intermediate.addBranch(EOpReturn, token.loc); + break; + } + + default: + assert(0); + return false; + } + + // SEMICOLON + if (! acceptTokenClass(EHTokSemicolon)) + expected(";"); + + return true; } - +// case_label +// : CASE expression COLON +// bool HlslGrammar::acceptCaseLabel(TIntermNode*& statement) { - return false; + TSourceLoc loc = token.loc; + if (! acceptTokenClass(EHTokCase)) + return false; + + TIntermTyped* expression; + if (! acceptExpression(expression)) { + expected("case expression"); + return false; + } + + if (! acceptTokenClass(EHTokColon)) { + expected(":"); + return false; + } + + statement = parseContext.intermediate.addBranch(EOpCase, expression, loc); + + return true; +} + +// default_label +// : DEFAULT COLON +// +bool HlslGrammar::acceptDefaultLabel(TIntermNode*& statement) +{ + TSourceLoc loc = token.loc; + if (! acceptTokenClass(EHTokDefault)) + return false; + + if (! acceptTokenClass(EHTokColon)) { + expected(":"); + return false; + } + + statement = parseContext.intermediate.addBranch(EOpDefault, loc); + + return true; } // array_specifier diff --git a/hlsl/hlslGrammar.h b/hlsl/hlslGrammar.h index b4a948f2..437c316b 100755 --- a/hlsl/hlslGrammar.h +++ b/hlsl/hlslGrammar.h @@ -1,5 +1,6 @@ // //Copyright (C) 2016 Google, Inc. +//Copyright (C) 2016 LunarG, Inc. // //All rights reserved. // @@ -54,13 +55,20 @@ namespace glslang { bool parse(); protected: + HlslGrammar(); + HlslGrammar& operator=(const HlslGrammar&); + void expected(const char*); bool acceptIdentifier(HlslToken&); bool acceptCompilationUnit(); bool acceptDeclaration(TIntermNode*& node); + bool acceptControlDeclaration(TIntermNode*& node); bool acceptFullySpecifiedType(TType&); void acceptQualifier(TQualifier&); bool acceptType(TType&); + bool acceptTemplateType(TBasicType&); + bool acceptVectorTemplateType(TType&); + bool acceptMatrixTemplateType(TType&); bool acceptStruct(TType&); bool acceptStructDeclarationList(TTypeList*&); bool acceptFunctionParameters(TFunction&); @@ -68,6 +76,7 @@ namespace glslang { bool acceptFunctionDefinition(TFunction&, TIntermNode*&); bool acceptParenExpression(TIntermTyped*&); bool acceptExpression(TIntermTyped*&); + bool acceptInitializer(TIntermTyped*&); bool acceptAssignmentExpression(TIntermTyped*&); bool acceptBinaryExpression(TIntermTyped*&, PrecedenceLevel); bool acceptUnaryExpression(TIntermTyped*&); @@ -87,6 +96,7 @@ namespace glslang { bool acceptIterationStatement(TIntermNode*&); bool acceptJumpStatement(TIntermNode*&); bool acceptCaseLabel(TIntermNode*&); + bool acceptDefaultLabel(TIntermNode*&); void acceptArraySpecifier(TArraySizes*&); void acceptPostDecls(TType&); diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index 228ac4ff..02c9c586 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -409,7 +409,7 @@ TIntermTyped* HlslParseContext::handleBracketDereference(const TSourceLoc& loc, return result; } -void HlslParseContext::checkIndex(const TSourceLoc& loc, const TType& type, int& index) +void HlslParseContext::checkIndex(const TSourceLoc& /*loc*/, const TType& /*type*/, int& /*index*/) { // HLSL todo: any rules for index fixups? } @@ -527,7 +527,7 @@ int HlslParseContext::getIoArrayImplicitSize() const return 0; } -void HlslParseContext::checkIoArrayConsistency(const TSourceLoc& loc, int requiredSize, const char* feature, TType& type, const TString& name) +void HlslParseContext::checkIoArrayConsistency(const TSourceLoc& /*loc*/, int requiredSize, const char* /*feature*/, TType& type, const TString& /*name*/) { if (type.isImplicitlySizedArray()) type.changeOuterArraySize(requiredSize); @@ -652,12 +652,6 @@ TFunction* HlslParseContext::handleFunctionDeclarator(const TSourceLoc& loc, TFu // If this is a definition, the definition production code will check for redefinitions // (we don't know at this point if it's a definition or not). // - // Redeclarations (full signature match) are allowed. But, return types and parameter qualifiers must also match. - // - except ES 100, which only allows a single prototype - // - // ES 100 does not allow redefining, but does allow overloading of built-in functions. - // ES 300 does not allow redefining or overloading of built-in functions. - // bool builtIn; TSymbol* symbol = symbolTable.find(function.getMangledName(), &builtIn); const TFunction* prevDec = symbol ? symbol->getAsFunction() : 0; @@ -799,6 +793,68 @@ TOperator HlslParseContext::mapAtomicOp(const TSourceLoc& loc, TOperator op, boo } } +// +// Change texture parameters to match AST & SPIR-V semantics +// +void HlslParseContext::textureParameters(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 EOpTexture: + { + // Texture with ddx & ddy is really gradient form + if (argAggregate->getSequence().size() == 4) { + node->getAsAggregate()->setOperator(EOpTextureGrad); + break; + } + + break; + } + + case EOpTextureBias: + { + TIntermTyped* arg0 = argAggregate->getSequence()[0]->getAsTyped(); // sampler + TIntermTyped* arg1 = argAggregate->getSequence()[1]->getAsTyped(); // coord + + // HLSL puts bias in W component of coordinate. We extract it and add it to + // the argument list, instead + TIntermTyped* w = intermediate.addConstantUnion(3, loc, true); + TIntermTyped* bias = intermediate.addIndex(EOpIndexDirect, arg1, w, loc); + + TOperator constructOp = EOpNull; + switch (arg0->getType().getSampler().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); + + 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; + + break; + } + + default: + break; // most pass through unchanged + } +} + +// // Optionally decompose intrinsics to AST opcodes. // void HlslParseContext::decomposeIntrinsic(const TSourceLoc& loc, TIntermTyped*& node, TIntermNode* arguments) @@ -875,6 +931,7 @@ void HlslParseContext::decomposeIntrinsic(const TSourceLoc& loc, TIntermTyped*& compoundStatement = intermediate.growAggregate(compoundStatement, cosAssign); compoundStatement->setOperator(EOpSequence); compoundStatement->setLoc(loc); + compoundStatement->setType(TType(EbtVoid)); node = compoundStatement; @@ -1105,6 +1162,35 @@ void HlslParseContext::decomposeIntrinsic(const TSourceLoc& loc, TIntermTyped*& break; } + case EOpAsDouble: + { + // asdouble accepts two 32 bit ints. we can use EOpUint64BitsToDouble, but must + // first construct a uint64. + TIntermTyped* arg0 = argAggregate->getSequence()[0]->getAsTyped(); + TIntermTyped* arg1 = argAggregate->getSequence()[1]->getAsTyped(); + + if (arg0->getType().isVector()) { // TODO: ... + error(loc, "double2 conversion not implemented", "asdouble", ""); + break; + } + + TIntermAggregate* uint64 = new TIntermAggregate(EOpConstructUVec2); + + uint64->getSequence().push_back(arg0); + uint64->getSequence().push_back(arg1); + uint64->setType(TType(EbtUint, EvqTemporary, 2)); // convert 2 uints to a uint2 + uint64->setLoc(loc); + + // bitcast uint2 to a double + TIntermTyped* convert = new TIntermUnary(EOpUint64BitsToDouble); + convert->getAsUnaryNode()->setOperand(uint64); + convert->setLoc(loc); + convert->setType(TType(EbtDouble, EvqTemporary)); + node = convert; + + break; + } + case EOpF16tof32: case EOpF32tof16: { @@ -1168,15 +1254,15 @@ TIntermTyped* HlslParseContext::handleFunctionCall(const TSourceLoc& loc, TFunct 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(); - } + //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 @@ -1222,6 +1308,7 @@ TIntermTyped* HlslParseContext::handleFunctionCall(const TSourceLoc& loc, TFunct } decomposeIntrinsic(loc, result, arguments); + textureParameters(loc, result, arguments); } } @@ -1808,7 +1895,7 @@ void HlslParseContext::globalCheck(const TSourceLoc& loc, const char* token) } -bool HlslParseContext::builtInName(const TString& identifier) +bool HlslParseContext::builtInName(const TString& /*identifier*/) { return false; } @@ -1820,7 +1907,8 @@ 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, TOperator op, TType& type) +bool HlslParseContext::constructorError(const TSourceLoc& loc, TIntermNode* /*node*/, TFunction& function, + TOperator op, TType& type) { type.shallowCopy(function.getType()); @@ -1956,7 +2044,7 @@ bool HlslParseContext::constructorError(const TSourceLoc& loc, TIntermNode* node return true; } - TIntermTyped* typed = node->getAsTyped(); + // TIntermTyped* typed = node->getAsTyped(); return false; } @@ -2045,7 +2133,7 @@ void HlslParseContext::boolCheck(const TSourceLoc& loc, const TIntermTyped* type // // Fix just a full qualifier (no variables or types yet, but qualifier is complete) at global level. // -void HlslParseContext::globalQualifierFix(const TSourceLoc& loc, TQualifier& qualifier) +void HlslParseContext::globalQualifierFix(const TSourceLoc&, TQualifier& qualifier) { // move from parameter/unknown qualifiers to pipeline in/out qualifiers switch (qualifier.storage) { @@ -2311,7 +2399,9 @@ void HlslParseContext::updateImplicitArraySize(const TSourceLoc& loc, TIntermNod // // Returns a redeclared and type-modified variable if a redeclared occurred. // -TSymbol* HlslParseContext::redeclareBuiltinVariable(const TSourceLoc& loc, const TString& identifier, const TQualifier& qualifier, const TShaderQualifiers& publicType, bool& newDeclaration) +TSymbol* HlslParseContext::redeclareBuiltinVariable(const TSourceLoc& /*loc*/, const TString& identifier, + const TQualifier& /*qualifier*/, + const TShaderQualifiers& /*publicType*/, bool& /*newDeclaration*/) { if (! builtInName(identifier) || symbolTable.atBuiltInLevel() || ! symbolTable.atGlobalLevel()) return nullptr; @@ -2611,7 +2701,7 @@ void HlslParseContext::setLayoutQualifier(const TSourceLoc& loc, TPublicType& pu void HlslParseContext::setLayoutQualifier(const TSourceLoc& loc, TPublicType& publicType, TString& id, const TIntermTyped* node) { const char* feature = "layout-id value"; - const char* nonLiteralFeature = "non-literal layout-id value"; + //const char* nonLiteralFeature = "non-literal layout-id value"; integerCheck(node, feature); const TIntermConstantUnion* constUnion = node->getAsConstantUnion(); @@ -2751,7 +2841,6 @@ void HlslParseContext::setLayoutQualifier(const TSourceLoc& loc, TPublicType& pu case EShLangFragment: if (id == "index") { - const char* exts[2] = { E_GL_ARB_separate_shader_objects, E_GL_ARB_explicit_attrib_location }; publicType.qualifier.layoutIndex = value; return; } @@ -2866,7 +2955,7 @@ void HlslParseContext::mergeObjectLayoutQualifiers(TQualifier& dst, const TQuali // const TFunction* HlslParseContext::findFunction(const TSourceLoc& loc, const TFunction& call, bool& builtIn) { - const TFunction* function = nullptr; + // const TFunction* function = nullptr; if (symbolTable.isFunctionNameVariable(call.getName())) { error(loc, "can't use function syntax on variable", call.getName().c_str(), ""); @@ -2931,6 +3020,27 @@ const TFunction* HlslParseContext::findFunction(const TSourceLoc& loc, const TFu return candidate; } +// +// Do everything necessary to handle a typedef declaration, for a single symbol. +// +// '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) +{ + 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()); +} + // // Do everything necessary to handle a variable (non-block) declaration. // Either redeclaring a variable, or making a new one, updating the symbol @@ -2939,7 +3049,7 @@ const TFunction* HlslParseContext::findFunction(const TSourceLoc& loc, const TFu // Returns a subtree node that computes an initializer, if needed. // Returns nullptr if there is no code to execute for initialization. // -// 'publicType' is the type part of the declaration (to the left) +// '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) @@ -2949,7 +3059,7 @@ TIntermNode* HlslParseContext::declareVariable(const TSourceLoc& loc, TString& i 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 publicType oversubscribes it, so get a deep copy of the arrayness. + // with the parseType oversubscribes it, so get a deep copy of the arrayness. type.newArraySizes(*parseType.getArraySizes()); } @@ -2958,7 +3068,7 @@ TIntermNode* HlslParseContext::declareVariable(const TSourceLoc& loc, TString& i // 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(), publicType.shaderQualifiers, newDeclaration); + TSymbol* symbol = nullptr; // = redeclareBuiltinVariable(loc, identifier, type.getQualifier(), parseType.shaderQualifiers, newDeclaration); inheritGlobalDefaults(type.getQualifier()); @@ -3758,7 +3868,7 @@ 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"; + // const char* id = (language == EShLangTessControl) ? "vertices" : "max_vertices"; if (language == EShLangTessControl) checkIoArraysConsistency(loc); @@ -3876,8 +3986,6 @@ void HlslParseContext::wrapupSwitchSubsequence(TIntermAggregate* statements, TIn TIntermSequence* switchSequence = switchSequenceStack.back(); if (statements) { - if (switchSequence->size() == 0) - error(statements->getLoc(), "cannot have statements before first case/default label", "switch", ""); statements->setOperator(EOpSequence); switchSequence->push_back(statements); } diff --git a/hlsl/hlslParseHelper.h b/hlsl/hlslParseHelper.h index dd97e490..ed1955eb 100755 --- a/hlsl/hlslParseHelper.h +++ b/hlsl/hlslParseHelper.h @@ -60,8 +60,8 @@ public: void C_DECL ppWarn(const TSourceLoc&, const char* szReason, const char* szToken, const char* szExtraInfoFormat, ...); - void reservedPpErrorCheck(const TSourceLoc&, const char* name, const char* op) { } - bool lineContinuationCheck(const TSourceLoc&, bool endOfComment) { return true; } + void reservedPpErrorCheck(const TSourceLoc&, const char* /*name*/, const char* /*op*/) { } + bool lineContinuationCheck(const TSourceLoc&, bool /*endOfComment*/) { return true; } bool lineDirectiveShouldSetNextLine() const { return true; } bool builtInName(const TString&); @@ -87,6 +87,7 @@ public: void handleFunctionArgument(TFunction*, TIntermTyped*& arguments, TIntermTyped* newArg); TIntermTyped* handleFunctionCall(const TSourceLoc&, TFunction*, TIntermNode*); void decomposeIntrinsic(const TSourceLoc&, TIntermTyped*& node, TIntermNode* arguments); + void textureParameters(const TSourceLoc&, TIntermTyped*& node, TIntermNode* arguments); TIntermTyped* handleLengthMethod(const TSourceLoc&, TFunction*, TIntermNode*); void addInputArgumentConversions(const TFunction&, TIntermNode*&) const; TIntermTyped* addOutputArgumentConversions(const TFunction&, TIntermAggregate&) const; @@ -125,6 +126,7 @@ public: void checkNoShaderLayouts(const TSourceLoc&, const TShaderQualifiers&); const TFunction* findFunction(const TSourceLoc& loc, const TFunction& call, bool& builtIn); + 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); TIntermTyped* addConstructor(const TSourceLoc&, TIntermNode*, const TType&, TOperator); TIntermTyped* constructAggregate(TIntermNode*, const TType&, int, const TSourceLoc&); @@ -146,6 +148,9 @@ public: void pushScope() { symbolTable.push(); } void popScope() { symbolTable.pop(0); } + void pushSwitchSequence(TIntermSequence* sequence) { switchSequenceStack.push_back(sequence); } + void popSwitchSequence() { switchSequenceStack.pop_back(); } + protected: void inheritGlobalDefaults(TQualifier& dst) const; TVariable* makeInternalVariable(const char* name, const TType&) const; @@ -165,7 +170,6 @@ protected: int structNestingLevel; // 0 if outside blocks and structures int controlFlowNestingLevel; // 0 if outside all flow control TList switchSequenceStack; // case, node, case, case, node, ...; ensure only one node between cases; stack of them for nesting - TList switchLevel; // the statementNestingLevel the current switch statement is at, which must match the level of its case statements bool inEntrypoint; // if inside a function, true if the function is the entry point bool postMainReturn; // 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 diff --git a/hlsl/hlslParseables.cpp b/hlsl/hlslParseables.cpp index cf8574ca..b454d4bd 100755 --- a/hlsl/hlslParseables.cpp +++ b/hlsl/hlslParseables.cpp @@ -54,6 +54,8 @@ namespace { // anonymous namespace functions +const bool UseHlslTypes = false; + const char* BaseTypeName(const char* argOrder, const char* scalarName, const char* vecName, const char* matName) { switch (*argOrder) { @@ -74,22 +76,38 @@ const char* BaseTypeName(const char* argOrder, const char* scalarName, const cha glslang::TString& AppendTypeName(glslang::TString& s, const char* argOrder, const char* argType, int dim0, int dim1) { const bool transpose = (argOrder[0] == '^'); + const bool matMul = (argOrder[0] == '#'); - // Take transpose of matrix dimensions - if (transpose) { - std::swap(dim0, dim1); + if (transpose) { // Take transpose of matrix dimensions + std::swap(dim0, dim1); + ++argOrder; + } else if (matMul) { + dim0 = dim1; // set vector dimension to mat col ++argOrder; } - switch (*argType) { - case '-': s += "void"; break; - case 'F': s += BaseTypeName(argOrder, "float", "vec", "mat"); break; - case 'D': s += BaseTypeName(argOrder, "double", "dvec", "dmat"); break; - case 'I': s += BaseTypeName(argOrder, "int", "ivec", "imat"); break; - case 'U': s += BaseTypeName(argOrder, "uint", "uvec", "umat"); break; - case 'B': s += BaseTypeName(argOrder, "bool", "bvec", "bmat"); break; - case 'S': s += BaseTypeName(argOrder, "sampler", "sampler", "sampler"); break; // TODO: - default: s += "UNKNOWN_TYPE"; break; + if (UseHlslTypes) { + switch (*argType) { + 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; + default: s += "UNKNOWN_TYPE"; break; + } + } else { + switch (*argType) { + case '-': s += "void"; break; + case 'F': s += BaseTypeName(argOrder, "float", "vec", "mat"); break; + case 'D': s += BaseTypeName(argOrder, "double", "dvec", "dmat"); break; + case 'I': s += BaseTypeName(argOrder, "int", "ivec", "imat"); break; + case 'U': s += BaseTypeName(argOrder, "uint", "uvec", "umat"); break; + case 'B': s += BaseTypeName(argOrder, "bool", "bvec", "bmat"); break; + case 'S': s += BaseTypeName(argOrder, "sampler", "sampler", "sampler"); break; // TODO: + default: s += "UNKNOWN_TYPE"; break; + } } // handle fixed vector sizes, such as float3, and only ever 3. @@ -118,8 +136,16 @@ glslang::TString& AppendTypeName(glslang::TString& s, const char* argOrder, cons switch (*argOrder) { case '-': break; // no dimensions for voids case 'S': break; // no dimensions on scalars - case 'V': s += ('0' + dim0); break; - case 'M': s += ('0' + dim0); s += 'x'; s += ('0' + dim1); break; + case 'V': s += ('0' + (char)dim0); break; + case 'M': + { + if (!UseHlslTypes) // GLSL has column first for mat types + std::swap(dim0, dim1); + s += ('0' + (char)dim0); + s += 'x'; + s += ('0' + (char)dim1); + break; + } } return s; @@ -128,21 +154,19 @@ glslang::TString& AppendTypeName(glslang::TString& s, const char* argOrder, cons // TODO: the GLSL parser is currently used to parse HLSL prototypes. However, many valid HLSL prototypes // are not valid GLSL prototypes. This rejects the invalid ones. Thus, there is a single switch below // to enable creation of the entire HLSL space. -inline bool IsValidGlsl(const char* cname, char retOrder, char retType, char argOrder, char argType, +inline bool IsValidGlsl(const char* cname, char retOrder, char retType, char /*argOrder*/, char argType, int dim0, int dim1, int dim0Max, int dim1Max) { const bool isVec = dim0Max > 1 || argType == 'V'; const bool isMat = dim1Max > 1 || argType == 'M'; - if (argType == 'D' || // avoid double args - retType == 'D' || // avoid double return - (isVec && dim0 == 1) || // avoid vec1 + if ((isVec && dim0 == 1) || // avoid vec1 (isMat && dim0 == 1 && dim1 == 1)) // avoid mat1x1 return false; const std::string name(cname); // for ease of comparison. slow, but temporary, until HLSL parser is online. - if (isMat && dim0 != dim1) // TODO: avoid mats until we find the right GLSL profile + if (isMat && dim1 == 1) // TODO: avoid mat Nx1 until we find the right GLSL profile return false; if (isMat && (argType == 'I' || argType == 'U' || argType == 'B') || @@ -186,7 +210,7 @@ inline const char* NthArg(const char* arg, int n) return arg; } -inline void FindVectorMatrixBounds(const char* argOrder, int fixedVecSize, int& dim0Min, int& dim0Max, int& dim1Min, int& dim1Max) +inline void FindVectorMatrixBounds(const char* argOrder, int fixedVecSize, int& dim0Min, int& dim0Max, int& /*dim1Min*/, int& dim1Max) { for (int arg = 0; ; ++arg) { const char* nthArgOrder(NthArg(argOrder, arg)); @@ -210,6 +234,39 @@ TBuiltInParseablesHlsl::TBuiltInParseablesHlsl() { } + +// +// Handle creation of mat*mat specially, since it doesn't fall conveniently out of +// the generic prototype creation code below. +// +void TBuiltInParseablesHlsl::createMatTimesMat() +{ + TString& s = commonBuiltins; + + const int first = (UseHlslTypes ? 1 : 2); + + for (int xRows = first; xRows <=4; xRows++) { + for (int xCols = first; xCols <=4; xCols++) { + const int yRows = xCols; + for (int yCols = first; yCols <=4; yCols++) { + const int retRows = xRows; + const int retCols = yCols; + + AppendTypeName(s, "M", "F", retRows, retCols); // add return type + s.append(" "); // space between type and name + s.append("mul"); // intrinsic name + s.append("("); // open paren + + AppendTypeName(s, "M", "F", xRows, xCols); // add X input + s.append(", "); + AppendTypeName(s, "M", "F", yRows, yCols); // add Y input + + s.append(");\n"); // close paren + } + } + } +} + // // Add all context-independent built-in functions and variables that are present // for the given version and profile. Share common ones across stages, otherwise @@ -218,7 +275,7 @@ TBuiltInParseablesHlsl::TBuiltInParseablesHlsl() // Most built-ins variables can be added as simple text strings. Some need to // be added programmatically, which is done later in IdentifyBuiltIns() below. // -void TBuiltInParseablesHlsl::initialize(int version, EProfile profile, const SpvVersion& spvVersion) +void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, const SpvVersion& /*spvVersion*/) { static const EShLanguageMask EShLangAll = EShLanguageMask(EShLangCount - 1); @@ -232,6 +289,7 @@ void TBuiltInParseablesHlsl::initialize(int version, EProfile profile, const Spv // '>' as first letter of order creates an output parameter // '<' as first letter of order creates an input parameter // '^' as first letter of order takes transpose dimensions + // '#' as first letter of order sets rows=cols for mats static const struct { const char* name; // intrinsic name @@ -321,6 +379,7 @@ void TBuiltInParseablesHlsl::initialize(int version, EProfile profile, const Spv { "isnan", nullptr, "B" , "SVM", "F", EShLangAll }, { "ldexp", nullptr, nullptr, "SVM,", "F,", EShLangAll }, { "length", "S", "F", "V", "F", EShLangAll }, + { "lerp", nullptr, nullptr, "SVM,,", "F,,", EShLangAll }, { "lit", "V4", "F", "S,,", "F,,", EShLangAll }, { "log", nullptr, nullptr, "SVM", "F", EShLangAll }, { "log10", nullptr, nullptr, "SVM", "F", EShLangAll }, @@ -330,16 +389,15 @@ void TBuiltInParseablesHlsl::initialize(int version, EProfile profile, const Spv { "min", nullptr, nullptr, "SVM,", "FI,", EShLangAll }, { "modf", nullptr, nullptr, "SVM,>", "FI,", EShLangAll }, { "msad4", "V4", "U", "S,V2,V4", "U,,", EShLangAll }, - // TODO: fix matrix return size for non-square mats used with mul opcode { "mul", "S", nullptr, "S,S", "FI,", EShLangAll }, { "mul", "V", nullptr, "S,V", "FI,", EShLangAll }, { "mul", "M", nullptr, "S,M", "FI,", EShLangAll }, { "mul", "V", nullptr, "V,S", "FI,", EShLangAll }, { "mul", "S", nullptr, "V,V", "FI,", EShLangAll }, - { "mul", "V", nullptr, "V,M", "FI,", EShLangAll }, + { "mul", "#V", nullptr, "V,M", "FI,", EShLangAll }, { "mul", "M", nullptr, "M,S", "FI,", EShLangAll }, - { "mul", "V", nullptr, "M,V", "FI,", EShLangAll }, - { "mul", "M", nullptr, "M,M", "FI,", EShLangAll }, + { "mul", "V", nullptr, "M,#V", "FI,", EShLangAll }, + // mat*mat form of mul is handled in createMatTimesMat() { "noise", "S", "F", "V", "F", EShLangFragmentMask }, { "normalize", nullptr, nullptr, "V", "F", EShLangAll }, { "pow", nullptr, nullptr, "SVM,", "F,", EShLangAll }, @@ -465,7 +523,7 @@ void TBuiltInParseablesHlsl::initialize(int version, EProfile profile, const Spv if (*nthArgOrder == ',' || *nthArgOrder == '\0') nthArgOrder = argOrder; if (*nthArgType == ',' || *nthArgType == '\0') nthArgType = argType; - AppendTypeName(s, nthArgOrder, nthArgType, dim0, dim1); // Add first argument + AppendTypeName(s, nthArgOrder, nthArgType, dim0, dim1); // Add arguments } s.append(");\n"); // close paren and trailing semicolon @@ -482,6 +540,8 @@ void TBuiltInParseablesHlsl::initialize(int version, EProfile profile, const Spv } } + createMatTimesMat(); // handle this case separately, for convenience + // printf("Common:\n%s\n", getCommonString().c_str()); // printf("Frag:\n%s\n", getStageString(EShLangFragment).c_str()); // printf("Vertex:\n%s\n", getStageString(EShLangVertex).c_str()); @@ -498,8 +558,8 @@ void TBuiltInParseablesHlsl::initialize(int version, EProfile profile, const Spv // add stage-specific entries to the commonBuiltins, and only if that stage // was requested. // -void TBuiltInParseablesHlsl::initialize(const TBuiltInResource &resources, int version, EProfile profile, - const SpvVersion& spvVersion, EShLanguage language) +void TBuiltInParseablesHlsl::initialize(const TBuiltInResource& /*resources*/, int /*version*/, EProfile /*profile*/, + const SpvVersion& /*spvVersion*/, EShLanguage /*language*/) { } @@ -512,7 +572,7 @@ void TBuiltInParseablesHlsl::initialize(const TBuiltInResource &resources, int v // 3) Tag extension-related symbols added to their base version with their extensions, so // that if an early version has the extension turned off, there is an error reported on use. // -void TBuiltInParseablesHlsl::identifyBuiltIns(int version, EProfile profile, const SpvVersion& spvVersion, EShLanguage language, +void TBuiltInParseablesHlsl::identifyBuiltIns(int /*version*/, EProfile /*profile*/, const SpvVersion& /*spvVersion*/, EShLanguage /*language*/, TSymbolTable& symbolTable) { // symbolTable.relateToOperator("abort", EOpAbort); @@ -522,7 +582,7 @@ void TBuiltInParseablesHlsl::identifyBuiltIns(int version, EProfile profile, con symbolTable.relateToOperator("AllMemoryBarrier", EOpMemoryBarrier); symbolTable.relateToOperator("AllMemoryBarrierWithGroupSync", EOpAllMemoryBarrierWithGroupSync); symbolTable.relateToOperator("any", EOpAny); - symbolTable.relateToOperator("asdouble", EOpUint64BitsToDouble); + symbolTable.relateToOperator("asdouble", EOpAsDouble); symbolTable.relateToOperator("asfloat", EOpIntBitsToFloat); symbolTable.relateToOperator("asin", EOpAsin); symbolTable.relateToOperator("asint", EOpFloatBitsToInt); @@ -586,11 +646,12 @@ void TBuiltInParseablesHlsl::identifyBuiltIns(int version, EProfile profile, con symbolTable.relateToOperator("isnan", EOpIsNan); symbolTable.relateToOperator("ldexp", EOpLdexp); symbolTable.relateToOperator("length", EOpLength); + symbolTable.relateToOperator("lerp", EOpMix); symbolTable.relateToOperator("lit", EOpLit); symbolTable.relateToOperator("log", EOpLog); symbolTable.relateToOperator("log10", EOpLog10); symbolTable.relateToOperator("log2", EOpLog2); - // symbolTable.relateToOperator("mad"); + symbolTable.relateToOperator("mad", EOpFma); symbolTable.relateToOperator("max", EOpMax); symbolTable.relateToOperator("min", EOpMin); symbolTable.relateToOperator("modf", EOpModf); @@ -628,25 +689,25 @@ void TBuiltInParseablesHlsl::identifyBuiltIns(int version, EProfile profile, con symbolTable.relateToOperator("tan", EOpTan); symbolTable.relateToOperator("tanh", EOpTanh); symbolTable.relateToOperator("tex1D", EOpTexture); - // symbolTable.relateToOperator("tex1Dbias", // TODO: + symbolTable.relateToOperator("tex1Dbias", EOpTextureBias); symbolTable.relateToOperator("tex1Dgrad", EOpTextureGrad); symbolTable.relateToOperator("tex1Dlod", EOpTextureLod); symbolTable.relateToOperator("tex1Dproj", EOpTextureProj); symbolTable.relateToOperator("tex2D", EOpTexture); - // symbolTable.relateToOperator("tex2Dbias", // TODO: + symbolTable.relateToOperator("tex2Dbias", EOpTextureBias); symbolTable.relateToOperator("tex2Dgrad", EOpTextureGrad); symbolTable.relateToOperator("tex2Dlod", EOpTextureLod); - // symbolTable.relateToOperator("tex2Dproj", EOpTextureProj); + symbolTable.relateToOperator("tex2Dproj", EOpTextureProj); symbolTable.relateToOperator("tex3D", EOpTexture); - // symbolTable.relateToOperator("tex3Dbias"); // TODO + symbolTable.relateToOperator("tex3Dbias", EOpTextureBias); symbolTable.relateToOperator("tex3Dgrad", EOpTextureGrad); symbolTable.relateToOperator("tex3Dlod", EOpTextureLod); - // symbolTable.relateToOperator("tex3Dproj", EOpTextureProj); + symbolTable.relateToOperator("tex3Dproj", EOpTextureProj); symbolTable.relateToOperator("texCUBE", EOpTexture); - // symbolTable.relateToOperator("texCUBEbias", // TODO + symbolTable.relateToOperator("texCUBEbias", EOpTextureBias); symbolTable.relateToOperator("texCUBEgrad", EOpTextureGrad); symbolTable.relateToOperator("texCUBElod", EOpTextureLod); - // symbolTable.relateToOperator("texCUBEproj", EOpTextureProj); + symbolTable.relateToOperator("texCUBEproj", EOpTextureProj); symbolTable.relateToOperator("transpose", EOpTranspose); symbolTable.relateToOperator("trunc", EOpTrunc); } @@ -660,8 +721,8 @@ void TBuiltInParseablesHlsl::identifyBuiltIns(int version, EProfile profile, con // 2) Tag extension-related symbols added to their base version with their extensions, so // that if an early version has the extension turned off, there is an error reported on use. // -void TBuiltInParseablesHlsl::identifyBuiltIns(int version, EProfile profile, const SpvVersion& spvVersion, EShLanguage language, - TSymbolTable& symbolTable, const TBuiltInResource &resources) +void TBuiltInParseablesHlsl::identifyBuiltIns(int /*version*/, EProfile /*profile*/, const SpvVersion& /*spvVersion*/, EShLanguage /*language*/, + TSymbolTable& /*symbolTable*/, const TBuiltInResource& /*resources*/) { } diff --git a/hlsl/hlslParseables.h b/hlsl/hlslParseables.h index f03e64db..c8375900 100755 --- a/hlsl/hlslParseables.h +++ b/hlsl/hlslParseables.h @@ -54,6 +54,9 @@ public: void identifyBuiltIns(int version, EProfile profile, const SpvVersion& spvVersion, EShLanguage language, TSymbolTable& symbolTable); void identifyBuiltIns(int version, EProfile profile, const SpvVersion& spvVersion, EShLanguage language, TSymbolTable& symbolTable, const TBuiltInResource &resources); + +private: + void createMatTimesMat(); }; } // end namespace glslang diff --git a/hlsl/hlslTokenStream.h b/hlsl/hlslTokenStream.h index 83365c4c..12c2a2a0 100755 --- a/hlsl/hlslTokenStream.h +++ b/hlsl/hlslTokenStream.h @@ -57,6 +57,9 @@ namespace glslang { HlslToken token; // the token we are currently looking at, but have not yet accepted private: + HlslTokenStream(); + HlslTokenStream& operator=(const HlslTokenStream&); + HlslScanContext& scanner; // lexical scanner, to get next token // Previously scanned tokens, returned for future advances,